案例2:熟悉addChild和removeChild在不同的swf之間的運用,以及loader的用法
說明:點擊picture會載入另一個swf,點擊載入的swf上的一個按鈕,該swf消失。
演示:http://www.live-my-life-with-yuyi.com/as3_cases/different_movies/
代碼:
swfA(也就是按鈕所在的flash)
var loader:Loader = new Loader(); loader.load(new URLRequest("Popup.swf")); picture_btn.addEventListener(MouseEvent.CLICK, showPicture); function showPicture(event:MouseEvent):void { addChild(loader); }
AS3里用loader代替了loadMovie,load的時候不能直接添加路徑名,需要通過URLRequest來載入。
整段代碼都很簡單,首先載入Popup.swf,然后給監聽按鈕的click事件定義一個showPicture函數,這個函數的功能很簡單,通過addChild把剛剛載入的swf放到舞臺上。
swfB(載入的flash->Popup.swf)
close_btn.addEventListener(MouseEvent.CLICK, closeWindow); function closeWindow(event:MouseEvent):void { this.parent.parent.removeChild(this.parent); }
很簡潔,監聽close按鈕的click事件,事件觸發時調用closeWindow函數,這里用到了parent,簡單分析一下,由于
這個swf已經被載入到另一個swf里,所以this.parent應該指代的是loader,而this.parent.parent則指代的是TimeLine0,也就是舞臺。所以這句話也就比較好理解了:從舞臺上卸下載入該swf的loader。
案例2分析到此結束。
打包文件下載
新聞熱點
疑難解答