元件呼叫主時間軸裡面定義的函式
先說解決方法(以呼叫主時間軸的gotoandplay()函式為例):
//方法1,共n種解決方式,效果都一樣
(this.root as maintimeline).gotoandplay(2);
(this.root as object).gotoandplay(2);
(this.root as movieclip).gotoandplay(2);
object(this.root).gotoandplay(2);
movieclip(this.root).gotoandplay(2);
maintimeline(this.root).gotoandplay(2);
//trace(this.root.numchild);
stop();
//方法2
//var test:object=this.root;
//方法3
//root["gotoandplay"](2);
最後說原因:
對於載入的 swf 檔案中的顯示物件,root 屬性是此 swf 檔案所表示的顯示列表樹結構部分中的頂級顯示物件。 對於代表已載入影象檔案的點陣圖物件,root 屬性就是位圖物件本身。 對於第乙個載入的 swf 檔案的主類的例項,root 屬性就是顯示物件本身。 stage 物件的 root 屬性是 stage 物件本身。 對於任何未新增到顯示列表的顯示物件,root 屬性設定為 null,除非它已新增到符合以下條件的顯示物件容器:不在顯示列表中,但屬於已載入 swf 檔案中頂級顯示物件的子級。
例如,如果您通過呼叫 sprite() 建構函式方法建立新的 sprite 物件,則其 root 屬性將為 null,除非您將其新增到顯示列表中(或新增到不在顯示列表中但屬於 swf 檔案中頂級顯示物件的子級的顯示物件容器中)。
對於載入的 swf 檔案,即使用於載入檔案的 loader 物件未在顯示列表中,swf 檔案中的頂級顯示物件也會為其本身設定 root 屬性。 在 loader 物件新增為對其設定 root 屬性的顯示物件的子級前,它不會設定自己的 root 屬性。
編譯時,元件還沒有新增到顯示列表裡面,這時元件裡面的this.root的值是null,還沒有給賦值,所以編譯出錯。。用as符給root強制轉換型別為乙個非空值,就可以通過編譯了。
編譯通過開始執行時,元件開始顯示時,this.root會被賦值例項話,就可以呼叫主時間軸下得變數和函式了
as3編譯比較嚴格,所以就爆出了錯誤1061: 呼叫可能未定義的方法 。之所以提示是「可能未定義的方法」,是因為root是動態類的例項化的因素吧。
個人理解,若有偏差,歡迎指正。
Vue入門3 元件
1 區域性元件 元件的定義模式可以直接在程式裡面採用html字串的方式進行定義,先進行乙個區域性元件的定義,所謂區域性元件指的是針對於某個vue物件定義的。js el msgdiv components html 執行結果 2 全域性元件 以上所定義的元件只能夠在當前vue物件使用,所以按照習慣性的...
vue學習筆記3 元件
1 元件命名 a.全小寫加連線符 vue.component my component name 當使用 kebab case 短橫線分隔命名 定義乙個元件時,你也必須在引用這個自定義元素時使用 kebab case,例如。b 駝峰式 vue.component mycomponentname 當使...
Vue 3 元件註冊
上一節實驗中,我們大概了解了一下元件的基礎,這一節實驗我們要深入元件註冊。我們在註冊元件的時候,我們都會給元件起乙個名字,就好像我們人的名字一樣。需要注意的是,我們的元件名字是有一些規範的,一般這種單檔案元件,我們強烈推薦使用字母全小寫且必須包含乙個連字元,全部小寫字母,單詞使用中華線 隔開。例如我...