作者toyhsu (至尊俠盜小短褲)
看板Flash
標題[問題] loader外部SWF的問題
時間Wed Jun 20 17:02:14 2012
如題
在主fla中 有設定5個mc做為選單
子選單做為按鈕 不同按鈕會放不同swf
所以我將loader那段的程式寫在選單mc中
問題來了 外部swf有載入成功
但swf播到一半就停住了 我自己猜想是load不完全的問題
想請問一下 要再增加什麼 才可以先讓swf載完再播放?
程式碼片段如下
btn1_2.addEventListener(MouseEvent.CLICK,menu1_2);
function menu1_2(me:MouseEvent) {
var loader1_2:Loader = new Loader();
loader1_2.load(new URLRequest("target1.swf"));
addChild(loader1_2);
loader1_2.x=-123;
loader1_2.y=-64;
trace("載入成功");
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.20.60.72
1F:→ KawasumiMai:loader1_2.addEventListener(Event.COMPLETE,func) 06/20 19:05
2F:→ KawasumiMai:加入完成之後的監聽事件,然後才讓他play() 06/20 19:06
3F:→ KawasumiMai:target1.swf一開始可以弄個stop() 06/20 19:06
4F:→ KawasumiMai:只靠按鈕就顯示載入成功並不嚴謹 06/20 19:06
5F:→ KawasumiMai:然後記得先addEventListener再load 06/20 19:06
6F:→ toyhsu:請問 不是一load完就會自動播放 如果我在target1放stop 06/21 11:07
7F:→ toyhsu:要如何指定target1從影格2開始播 06/21 11:08
8F:推 KawasumiMai:推測既然沒載完會直接播放,表示在跑play()事件之前 06/21 17:05
9F:→ KawasumiMai:應該會先執行裡面的stop(),然後對stop中的影格執行 06/21 17:05
10F:→ KawasumiMai:play(),其實他是會繼續跑的 06/21 17:06
11F:→ KawasumiMai:不然其實你loader1_2.gotoAndPlay(2)也可以 06/21 17:06
12F:→ KawasumiMai:當load完畢之後,loader1_2本身就等於swf了 06/21 17:06
13F:→ toyhsu:現在發現 不是沒載完的問題 是會跑到主影格結束的地方就當 06/21 17:16
14F:→ toyhsu:掉 比如說我主影格在1800放AS 載入B.SWF B.SWF跑到1800就會 06/21 17:17
15F:→ toyhsu:出#1009的錯 不知道為什麼會這樣 @@" 06/21 17:18
現在程式碼改成下面
import flash.display.MovieClip;
stop();
var tmp1:Boolean = new Boolean(false);
var tmp:MovieClip = new MovieClip();
var loader:Loader = new Loader();
menu1.btn1_1.addEventListener(MouseEvent.CLICK, menu1_1);
function menu1_1(event:MouseEvent):void
{
loader.unloadAndStop();
loader.load(new URLRequest("2-3-頭燈.swf"));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderComplete);
}
menu1.btn1_2.addEventListener(MouseEvent.CLICK,menu1_2);
function menu1_2(event:MouseEvent):void
{
loader.unloadAndStop();
loader.load(new URLRequest("2-3-後號牌燈.swf"));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderComplete);
}
menu2.btn2_1.addEventListener(MouseEvent.CLICK, menu2_1);
function menu2_1(event:MouseEvent):void
{
loader.unloadAndStop();
loader.load(new URLRequest("2-3-煞車燈.swf"));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderComplete);
}
menu2.btn2_2.addEventListener(MouseEvent.CLICK,menu2_2);
function menu2_2(event:MouseEvent)
{
loader.unloadAndStop();
loader.load(new URLRequest("2-3-第三煞車燈.swf"));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderComplete);
}
menu2.btn2_3.addEventListener(MouseEvent.CLICK, menu2_3);
function menu2_3(event:MouseEvent):void
{
loader.unloadAndStop();
loader.load(new URLRequest("2-3-方向燈.swf"));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderComplete);
}
menu2.btn2_4.addEventListener(MouseEvent.CLICK,menu2_4);
function menu2_4(event:MouseEvent)
{
loader.unloadAndStop();
loader.load(new URLRequest("2-3-倒車燈.swf"));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderComplete);
}
menu2.btn2_5.addEventListener(MouseEvent.CLICK, menu2_5);
function menu2_5(event:MouseEvent):void
{
loader.unloadAndStop();
loader.load(new URLRequest("2-3-危險警告燈.swf"));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderComplete);
}
function onLoaderComplete(e:Event):void
{
if (tmp1==true)
{
removeChild(loader);
}
_mc.addChild(loader);
loader.x=0;
loader.y=-75;
//tmp=loader.content as MovieClip;
//tmp.play();
_mc.play();
trace("載入成功");
tmp1=true;
}
這是放在主影格最後一格(1820)
不過只要載入的SWF跑到1820 就會出#1009的錯
不知道要如何解決...苦惱中
※ 編輯: toyhsu 來自: 111.250.3.237 (06/26 10:56)
16F:推 KawasumiMai:_mc.addChild(loader),表示swf在_mc裡面 06/26 13:00
17F:→ KawasumiMai:這時候你要play的應該是_mc的child(0)而不是_mc本身 06/26 13:00
18F:→ KawasumiMai:tmp那行可以用,改成e.content as MC或Object 06/26 13:01