在Flash CS4中,我可以通過屬性面板在我的時間軸中爲對象提供實例名稱。我想這個變量會在我的Document類中提供給我,但是當我嘗試訪問它時,它是空的。Flash/AS3:如何從Document類訪問<Instance Name>對象?
如何從我的Document類中訪問這些實例?另外,這些對象是否必須位於第1幀的時間軸上才能用於我的Document類的構造函數?
在Flash CS4中,我可以通過屬性面板在我的時間軸中爲對象提供實例名稱。我想這個變量會在我的Document類中提供給我,但是當我嘗試訪問它時,它是空的。Flash/AS3:如何從Document類訪問<Instance Name>對象?
如何從我的Document類中訪問這些實例?另外,這些對象是否必須位於第1幀的時間軸上才能用於我的Document類的構造函數?
構造函數總是在對象上調用的第一件事,它用於獲取存儲該對象類型的所有屬性所需的內存。在構建對象之後(假設它是一個顯示對象)在某個點添加到舞臺上。如果將其中一個對象的實例添加到框架的舞臺上,則主文檔類將必須知道該對象何時添加到舞臺才能正確訪問它。你可以在你的文檔類構造器中創建對象的實例,然後當你的主類添加到舞臺觸發器時,你可以添加實例。
只是嘗試,這是無法重現的有機磷農藥初始行爲,我能夠訪問在第1幀添加的情況下,發佈了一些例子在這裏:
http://www.shaunhusain.com/TestHandleOnInstance/TestHandleOnInstance.as
http://www.shaunhusain.com/TestHandleOnInstance/TestHandleOnInstance.swf
http://www.shaunhusain.com/TestHandleOnInstance/TestHandleOnInstance.fla
我不確定你的意思是什麼時候說「然後添加到你的主類的舞臺火焰上,你可以添加實例」。如果我將一個Event.ADDED_TO_STAGE監聽器添加到主類中,那麼只會在文檔加載時觸發一次。這幾乎就像我想爲我的實例添加一個ADDED_TO_STAGE偵聽器,以便它可以告訴主類它在那裏。只有在添加實例之前,我無法訪問實例。我會說,在main中創建實例並在main中創建addToStage,但是我無法直接在我的時間軸中編輯對象。 – Thomas
@Thomas,你好像直接關注我的意圖,我想的是從時間線中刪除實例並控制它在文檔類中的創建/添加,這樣你知道實例何時有效並添加到階段。我能想到的唯一方法是聽取輸入幀事件,直到您能夠獲取非空引用,或者偵聽添加到從舞臺觸發的舞臺事件並檢查event.target,直到它匹配類和/或實例,你正在尋找處理。 – shaunhusain
添加stage.addEventListener(Event。ADDED_TO_STAGE,test)在我的主類的構造函數中不會觸發。我應該使用不同的活動嗎? – Thomas
你試過getChildByName(「name_of_object」)。不知道自動聲明階段實例是否在cs4 – ansiart
yes-且它返回null。該對象還沒有在時間軸上,所以我可以看到爲什麼我無法訪問它。我只需要知道何時調用getChildByName(「obj_name」)的方法。這可能有幫助。 – Thomas
使用:Event.FRAME_CONSTRUCTED - 這會告訴你何時創建了一切。你的代碼在構造函數中?你確定你給了這個物品一個名字? :) – ansiart