2015-06-11 47 views
1

如何解決其中一個參數無效as3?其中一個參數無效as3

  1. 首先點擊bitnmap顯示地圖= OK
  2. 地圖+ closebtnmap =>顯示,BTN地圖=>隱藏
  3. 點擊closebtnmap隱藏地圖= OK
  4. 第二次點擊btnmap顯示地圖= ERORR

CODE

import flash.media.StageWebView; 
import flash.events.MouseEvent; 
import flash.events.Event; 

var _webView:StageWebView = new StageWebView(); 
btnmap.addEventListener(MouseEvent.MOUSE_UP, addWebView); 

function addWebView(e:MouseEvent):void 
{ 
     _webView.viewPort = new Rectangle(0, 170, 480,510); 
     _webView.stage = this.stage; 
     _webView.loadURL("https://goo.gl/maps/b6lMB"); 
     btnclosemap.visible =true; 
    btnclosemap.addEventListener(MouseEvent.CLICK, closeWebView); 
} 

function closeWebView(e:MouseEvent):void 
{ 
    _webView.stage = null; 
    _webView.dispose(); 
    btnclosemap.visible =false; 
} 

錯誤:因爲在closeWebView方法,在廢棄StageWebView稱爲_webView

ArgumentError: Error #2004: One of the parameters is invalid. at flash.media::StageWebView/set viewPort() at sanggaluri_fla::plokasi_27/addWebView()[sanggaluri_fla.plokasi_27::frame1:29]

+0

你能發佈實際的錯誤信息嗎? – jusopi

+0

雖然這不是解決錯誤的方法,但應該將'btnclosemap.addEventListener(MouseEvent.CLICK,closeWebView)'移到'addWebView'方法之外 – BadFeelingAboutThis

+0

ArgumentError:Error#2004:其中一個參數無效。 \t at flash.media::StageWebView/set viewPort() \t at sanggaluri_fla :: plokasi_27/addWebView()[sanggaluri_fla.plokasi_27 :: frame1:29] – Dalphin

回答

1

你的問題是可能的。

所以,現在,當您再次單擊並且addWebView運行時,您嘗試設置它的視口,但是網絡視圖已被丟棄,因此會引發錯誤。

要使其工作,請在addWebView方法內創建一個新的StageWebView

所以:

var _webView:StageWebView; //don't instantiate it here 

btnmap.addEventListener(MouseEvent.MOUSE_UP, addWebView);  
btnclosemap.addEventListener(MouseEvent.CLICK, closeWebView); 

function addWebView(e:MouseEvent):void 
{ 
     if(!_webView){ 
      _webView = new StageWebView(); //Create a new one here if it doesn't exist/is null 
     } 
     _webView.viewPort = new Rectangle(0, 170, 480,510); 
     _webView.stage = this.stage; 
     _webView.loadURL("https://goo.gl/maps/b6lMB"); 
     btnclosemap.visible =true; 
} 

function closeWebView(e:MouseEvent):void 
{ 
    _webView.stage = null; 
    _webView.dispose(); 
    _webView = null; //make it null so you know it's been disposed 
    btnclosemap.visible =false; 
} 
+0

你能舉個例子嗎? – Dalphin

+0

FIX ...謝謝...... :)(y) – Dalphin

+0

太棒了!那麼請接受答案! (投票按鈕的複選標記) – BadFeelingAboutThis

-1
function closeWebView(e:MouseEvent):void 
{   
    _webView.dispose(); 
    _webView.stage = null; 
    _webView.stage = null; 
    btnclosemap.visible =false; 
} 

希望這將工作下一次。