2011-05-31 48 views
0

我想知道我的swf是在本地加載還是從另一個swf加載。爲此我已經在我的fla中聲明瞭一個變量'parentType'。 var parentType:String = String(parent); 在文檔類中有一個函數確定swf是在本地加載還是從另一個swf加載。文檔類中函數的名稱是'externalOrInternal'。可變的parentType作爲參數傳遞給函數externalOrInternal。 externalOrInternal(parentType); 文檔類的名稱是Main。 在Main的構造函數中,我有函數pollResize()(這個函數的用途是偵聽調整大小的事件,那部分代碼沒有顯示在下面給出的代碼片段中)。從fla發送變量到文檔類,然後訪問它

我的fla如下。

var parentType:String = String(parent); 
externalOrInternal(parentType); 

我的文檔分類如下。

package { 

    import flash.display.MovieClip; 


    public class Main extends MovieClip { 

     private var swfParentType:String; 

     public function Main1() { 

      pollResize(); 
     } 

     public function externalOrInternal(parentType:String) { 



      swfParentType=parentType; 

      trace("Inside externalOrInternal"); 
      trace(swfParentType); 


     } 

     private function pollResize():void { 

      trace("Inside pollResize"); 
      trace(swfParentType); 


     } 
    } 
} 

當我運行這是被描繪出

Inside pollResize 

null 

Inside externalOrInternal 

[object Stage] 

我看到swfParentType是具有價值insde功能externalOrInternal。我的疑問是爲什麼null在函數pollResize中被追蹤。爲什麼它不是[object Stage]在externalOrInternal內部。由於這一點,我無法繼續進行舞臺調整大小事件。需要做什麼才能在函數pollResize中追蹤適當的值。

回答

3

根據您的跟蹤,pollResize在externalOrInternal之前調用,您在此設置swfParentType,因此它是正常的,它首先會跟蹤null。另外,你的構造函數被錯誤地調用,當它應該是Main時,它讀取Main1,儘管這不能解決你的問題。

+1

忘記發表評論您並不需要fla將父級發送到Document類,您也可以從那裏訪問它。 – Neverbirth 2011-05-31 07:50:28

+0

非常感謝。修復了這個問題。 – 2011-05-31 11:01:32

+0

@Marty非常感謝編輯這個問題的兄弟。 – 2011-05-31 11:02:09

相關問題