2011-08-01 72 views
1

我想調用一個類中的外部函數。這就是代碼;如何從類內部調用外部函數?

在checkConnectionStatus功能

此[_funcNameForSucceededCon]。適用();不工作,因爲「這個」是類,而不是應用程序。我目前如何到達應用程序,或者我能做什麼?

任何幫助將不勝感激。

最好的問候, 米拉。

package myLibrary 
{ 
    import air.net.URLMonitor; 

    import flash.events.Event; 
    import flash.events.StatusEvent; 
    import flash.net.URLRequest; 

    public class connectionControl 
    { 
     private var _urlReq:URLRequest; 
     private var _urlMonitor:URLMonitor; 

     private var _funcNameForSucceededCon:String; 
     private var _funcNameForFailedCon:String; 

     public function connectionControl(targetURL:String, funcNameForSucceededCon:String, funcNameForFailedCon:String) 
     { 
      _urlReq = new URLRequest(targetURL); 
      _urlMonitor = new URLMoniotor(_urlReq); 

      _urlMonitor.addEventListener(StatusEvent.STATUS, checkConnectionStatus); 

      _funcNameForSucceededCon = funcNameForSucceededCon; 
      _funcNameForFailedCon = funcNameForFailedCon; 

      if(_urlMonitor.running == false) 
      { 
       _urlMonitor.start(); 
      } 
      else 
      { 
       _urlMonitor.stop(); 
       _urlMonitor.start(); 
      } 
     } 

     private function checkConnectionStatus(e:Event):void 
     { 
      _urlMonitor.removeEventListener(StatusEvent.STATUS, checkConnectionStatus); 

      if(_urlMonitor.available) 
      { 
       this[_funcNameForSucceededCon].apply(); 
      } 
      else 
      { 
       this[_funcNameForFailedCon].apply(); 
      } 

     } 

    } 
} 

回答

2

您已經傳遞函數的名稱作爲回調函數。使用函數本身並將其傳遞給connectionControl。

public class connectionControl 
{ 

    private var _funcSucceededCon:Function; 
    private var _funcFailedCon:Function; 

    public function connectionControl(targetURL:String, funcSucceededCon:Function, funcFailedCon:Function) 
    { 
     _urlReq = new URLRequest(targetURL); 
     _urlMonitor = new URLMoniotor(_urlReq); 

     _urlMonitor.addEventListener(StatusEvent.STATUS, checkConnectionStatus); 

     _funcSucceededCon= funcSucceededCon; 
     _funcFailedCon= funcFailedCon; 

     ... 

和:

 if(_urlMonitor.available) 
     { 
      _funcSucceededCon(); 
     } 
+0

太感謝你了。 – mira

+0

考慮通過點擊投票計數下方的灰色複選框來將此答案標記爲接受的答案。 –

+0

您可以使用此方法從範圍確定中獲得有趣的結果。最好讓這個類派發一個事件,然後爲派發的事件添加一個監聽器給這個類。 –

相關問題