我在as2中做了一個簡單的測試示例。這包含兩個按鈕和以下處理程序。將as3加載到as2只能在_root上工作
_root:
on (release)
{
this.loadMovie("AS3.swf");
}
_root.test.testmc:
on (release)
{
test.testmc.loadMovie("AS3.swf");
}
的AS3.swf是(使用YouTube AS3 API)視頻播放器。如果我把它加載到_root它的作品,但如果我想將它加載到任何其他地方它不。我從Adobe搜索並發現:
「以ActionScript 1.0或2.0編寫的SWF文件無法加載用ActionScript 3.0編寫的SWF文件,這意味着在Flash 8或Flex Builder 1.5或更低版本中創建的SWF文件無法加載ActionScript 3.0 SWF文件
此規則的唯一例外是,ActionScript 2.0 SWF文件可以用ActionScript 3.0 SWF文件替換自身,只要ActionScript 2.0 SWF文件先前未將任何內容加載到其任何文件中ActionScript 2.0 SWF文件可以通過調用loadMovieNum(),將值0傳遞給level參數來完成此操作。「
由於上述「例外規則」,我的代碼的「_root部分」是否工作?我是新來的閃光燈(是啊,你可以問爲什麼我開始與as2,不幸的是不是我的選擇...),我不知道我的想法是否正確。此外,如果有任何形式的解決方法(除了重寫AS3中的所有內容),請告訴我(可能使用localconnection?)。在AS2的根
:
我相信你是正確的,'_root.loadMovie()'和'loadMovieNum()'等價。如果您不想將播放器swf加載到根目錄下,那麼您可能不得不考慮將應用程序移植到AS3或使用YouTube的AS2 API重寫視頻播放器:https://developers.google.com/ youtube/flash_api_reference_as2 – shanethehat 2012-03-26 12:55:52
感謝您的答案,不幸的是,YouTube的as2 api將繼續運行,直到10月14日,我猜那之後它不會工作。我想我會試圖說服老闆忘記AS2並投資將所有東西移植到AS3。 – Alex 2012-03-26 13:14:11