看板 Flash 關於我們 聯絡資訊
※ 引述《goodray (RAY)》之銘言: : 請問AS3還是可以這樣寫嗎?還是一定要用另外一個負責載入的 : swf檔來載入主要的swf檔,才能夠作loading bar的效果呢? 先知道,任何需要載入(無論是外部或者內部)的元件(包括.swf檔案) 被載入者(content)與載入者(loader)之間一定會有個LoaderInfo物件存在 它們之間的關係是這樣的: Loader ───────────── Content │ │ │ │ └───── LoaderInfo ─────┘ contentLoaderInfo→ ←loaderInfo LoaderInfo是個EventDispatcher 一切載入的相關數據都由它的事件提供 所以你說的兩種方法都可以做到 只是看你要把誰當作loader,誰當作content而已 1.載入寫在第一格 →相當於stage是loader,.swf本身是content 所以第一格就這樣寫: this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, p); this.loaderInfo.addEventListener(Event.COMPLETE, c); function p(e:ProgressEvent):void { //載入條的長度 loadingBar_mc.scaleX = e.bytesLoaded / e.bytesTotal; } function c(e:Event):void { //載入完成之後想要做的事情 } 2.用一個.swf載入另外一個.swf →相當於載入者裡面的Loader物件是loader,被載入的.swf則是content 寫法大概是這樣: var loader:Loader = new Loader(); loader.contentLoaderInfo.addEevntListener( ProgressEvent.PROGRESS, p); loader.contentLoaderInfo.addEventListener( Event.COMPLETE, c); //載入外部.swf loader.load(new URLRequest("content.swf")); function p(e:ProgressEvent):void { //載入條的長度 loadingBar_mc.scaleX = e.bytesLoaded / e.bytesTotal; } function c(e:Event):void { //載入完成之後想要做的事情 //通常是將載入進來的content加到display list上面 addChild(e.content); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.228.87.91
goodray:感謝,我馬上去試試看 :D 07/28 11:53
goodray:不好意思,我把上面的程式碼放在第一個影格,會出現如下: 07/28 11:57
goodray:1046: 找不到 Type,或它不是編譯時期常數:ProgressEvent 07/28 11:57
goodray:原來要import這個事件類別,總算搞定了,太感謝您了! 07/28 12:05