2013-04-17 30 views
-1

請我是Flex和Actionscript 3的新手,但我知道它是OOP語言,我來自Java背景。我有一個類可以幫助我檢查我的AIR應用程序的用戶是否具有互聯網連接,當它直接包含在我的mxml類中時,它運行良好。想知道是否可以將它插入到actionscript類中,並在我希望的任何mxml組件類中重用它。如何在我的所有mxml組件中使用這個類

編輯

package components 
{ 
    import air.net.URLMonitor; 

    import flash.events.StatusEvent; 
    import flash.net.*; 

    public class NetworkChecker 
    { 
     private var monitor:URLMonitor; 
     private var myURL = new URLRequest("http://www.adobe.com"); 

     public function NetworkChecker() 
     { 
      myURL.method = "HEAD"; 
      monitor = new URLMonitor(myURL); 
      monitor.start(); 
      monitor.addEventListener(StatusEvent.STATUS, on_Connection); 
     } 
     public function on_Connection(event:StatusEvent):void 
     { 
      if(event.target.available == true) 
      { 
       trace("Internet Connection is available"); 
      } 
      else 
      { 
       trace("No internet Connection"); 
      } 
     } 
    } 
} 

請我如何調用從MXML組件的代碼?當我直接將它包含在fx:Script標記中時,它運行良好。我需要知道,如果event.target.available是在我的MXML組件假假真真...

+0

如何在你的MXML類,你使用它?爲什麼在ActionScript類中沒有相同的確切方法? – JeffryHouser

+0

只需創建此類的實例並存儲對其的引用以防止垃圾收集:_private var monitor:NetworkCheckerr; monitor = new NetworkCheckerr()_ – fsbmain

+0

謝謝,但在我的mxml中,我需要知道event.target.available是true還是false。我怎麼做? –

回答

0

改變你的函數:

public function on_Connection(event:StatusEvent):boolean 
    { 
     if(event.target.available == true) 
     { 
      trace("Internet Connection is available"); 
      return true; 
     } 
     else 
     { 
      trace("No internet Connection"); 
      return false; 
     } 
    } 

或者更好的是:

public function on_Connection(event:StatusEvent):boolean 
    { 
     return event.target.available; 
    } 

注意:這裏假定event.target.available被定義爲...

0

將公共屬性添加到NetworkChecker類

[Bindable] 
public var available:Boolean = false; 

然後

public function on_Connection(event:StatusEvent):void 
     {   
      this.available = event.target.available; 
     } 

MXML

<fx:Declarations> 
    <components:NetworkChecker id="checker"/> 
</fx:Declarations> 

<s:Button label="Button" enabled="{checker.available}"/> 

多:
你應該在構造函數監控開始之前添加事件監聽

相關問題