Flash 板


LINE

: private function initial():void : { : for (var i:Number = 1; i <= 3; i++) : { : lo = new Loader(); : re = new URLRequest("bmp/"+i+".jpg"); : this.lo.load(re); : this.addChild(lo); : this._tween = new Tween(lo,"alpha",Strong.easeOut,0,1.0,3,true); 因為 _tween 宣告成全域變數的關係,所以迴圈跑完 _tween 只會指向 i=3 的那次 Tween : this._tween.addEventListener(TweenEvent.MOTION_FINISH,_mf); : } : return; : } : function _mf(event:TweenEvent):void : { : trace("finish"); : this._tween.removeEventListener(TweenEvent.MOTION_FINISH,this._mf); : this._tween = null; 如上面所說,不管這是哪一個 Tween 觸發的 event 都只會把 i=3 的 Tween 移除事件 所以當有第二個 Tween 完成的時候 _tween 已經是 null 了,會跳錯誤 : this.lo.unload(); : return; : } : } : } 還有一點是你三個 Tween 同時 start,沒有時間差阿 ... 參考一下我幫你修改過後的,應該滿好懂的 public class main extends MovieClip { private var lo:Loader; private var re:URLRequest; private var arr:Array; public function main() { arr = []; for (var i:Number = 1; i <= 3; i++) { addTween(i); } arr[0].start(); } private function addTween(i:int):void { lo = new Loader(); re = new URLRequest("/bmp/" + i + ".jpg"); lo.load(re); lo.alpha = 0; addChild(lo); function onFinish(e:TweenEvent):void { _tween.removeEventListener(TweenEvent.MOTION_FINISH, onFinish); _tween = null; arr.shift(); if (arr.length) { arr[0].start(); } } var _tween = new Tween(lo, "alpha", Strong.easeOut, 0, 1.0, 3, true); _tween.addEventListener(TweenEvent.MOTION_FINISH, onFinish); _tween.stop(); // tween 預設好像會自己 start!? arr.push(_tween); } } --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.121.204.118
1F:推 cjcat2266:耶...好像會自己start()沒錯,太久沒用忘記了XD 04/16 16:17
2F:→ cjcat2266:同時也可以參考 3 > 7 > 3 > 1 04/16 16:18
3F:推 ninimiga:感謝感謝,測完後再回報 04/16 20:58
4F:推 ninimiga:經過測試,發現for迴圈跑太快,其實是有執行addEventL... 04/17 00:07
5F:推 cjcat2266:"for迴圈跑太快" 的意思是? 04/17 01:11
6F:推 ninimiga:Tween還在監聽是否完成時,迴圈就跑到下一個,所以迴圈完 04/17 01:19
7F:→ ninimiga:成後,其實Tween還沒有finish,自然不會執行到finish那段 04/17 01:20
8F:→ ninimiga:還在思考如何解決,想到再跟大家說 04/17 01:21
看你的想法 是想要等前一個tween完成後再執行下一個 addTween()對嗎? 如果是這樣可以用 timer,每三秒鐘執行一次 addTween,然後把stop()拿掉 不過感覺有點多此一舉 另外就算迴圈跑的再快再慢,onFinish都會執行的,因為已經有偵聽 Event了 你可以在 onFinish裡面加個全域變數 count測測看,一定會執行到三次的 補上時間軸幫助你理解: 執行三次addTween() → arr[0]的tween開始執行 → 三秒後 → 第一個 tween完成,從arr內移除,執行下一個 tween → 三秒後 → 第二個 tween完成,從arr內移除,執行下一個 tween → 三秒後 → 第三個 tween完成,從arr內移除,arr內沒東西了,結束 ※ 編輯: jeaby 來自: 118.171.118.34 (04/17 10:31)
9F:推 ninimiga:^^一開始我也是像您這麼想的...不過,for迴圈就像定期出 04/17 10:43
10F:→ ninimiga:現的公車,addEventListener就像是注意公車來的乘客 04/17 10:44
11F:推 ninimiga:當乘客還在遠方看著公車靠近要舉手時,末班車早就跑走了 04/17 10:46
12F:→ ninimiga:我把for拿掉,才發現還真是點點點>_<,我會聽您的意見 04/17 10:48
13F:→ ninimiga:試試Timer或EnterFrame,不過可能是明後天了^^謝謝!! 04/17 10:49
14F:推 bujinron:習慣用EnterFrame同步後就很少用For弄視覺類的東西 04/18 07:32
15F:→ bujinron:因為EnterFrame比較能掌握時間,然後建議不要用Timer 04/18 07:33
16F:→ bujinron:如果你拿Timer做過碼表之類的就知道為什麼了 04/18 07:33







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:WOW站內搜尋

TOP