作者STARGAZERs (星之影)
看板Flash
標題[問題] 不解... .as 內的 function 抓不到 stage ?
時間Thu Sep 30 11:35:52 2010
天阿 這真是個讓我快要抓狂的問題...
我寫了一個特效的 code !!
特效 .as 內只有一個 static function
function :MovieClip {
var removeEffect = function() {
_mc.parent.removeChild(_mc);
}
var _mc:MovieClip = new MovieClip
TweenLite.to(_mc, 0, {x:vars.x, y:vars.y});
TweenLite.to(_mc, 0.9, {y:vars.y-50, alpha:1, onComplete:removeEffect()});
returen MovieClip;
}
.fla 內
var _mc : MovieClip = 特效.function();
stage.addChild(_mc);
利用 TweenLite 讓 _mc 往上移動 到達預設位置之後移除
原本都很正常 可是剛剛我對 onComplete 換 Function 後就掛了 (無法移除)
換回原本的 Function 也沒用
我 trace 的結果是 _mc.parent 或是 _mc.stage 都是 null @@?
可是我有把他丟到 stage 阿....
如果用 onUpdate (應該是只要移動就會觸發)
配合上我把他 addChild 到 stage 去看會有下面的結果
null 75 <-- onUpdate 回傳的 trace
[object Stage] <-- 這邊表示我把他丟到 stage
null 205.2 <-- 我都丟到 stage 了還是給我 null
null 220.2
null 190.2
我真的不解是怎麼回事...
請問有沒有高手能說明我犯了什麼錯阿 Orz
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.43.118.250
→ aquarianboy:原始檔? 09/30 12:36
→ STARGAZERs:我晚點拆解來上傳好了.... 目前的 fla 有 35MB 之大... 09/30 13:29
推 scars:你的code很奇怪 是你貼上來的時候把字改掉了嗎 09/30 13:31
推 scars:然後一個常見的錯誤是在ADDED_TO_STAGE事件前就存取stage 09/30 13:37
→ scars:你可以看看會不會是這個問題 09/30 13:37
→ STARGAZERs:因為 .as 宣告很多所以我有刪除掉宣告 09/30 13:48
→ STARGAZERs:不過基本上我就是這樣用的沒錯 09/30 13:48
→ STARGAZERs:我也確定 在 removeChild 前東西有在 stage 09/30 13:49
→ STARGAZERs:上面的 null 75 下一行就是證明 Orz 09/30 13:49
→ STARGAZERs:我正在找免空 準備上傳 code 09/30 13:49
推 KawasumiMai:www.mediafire.com.......... 09/30 13:50
→ STARGAZERs:上傳好了 XD 剛好一行不用縮!!! 09/30 13:52
→ STARGAZERs:/dev/SysEffect.as 的 11 行 就是 removeEff:Function 09/30 13:55
→ STARGAZERs:裡面用 _textBlock.parent 或是 this.parent 都是 null 09/30 13:55