作者scars (scars)
看板Flash
標題Re: [問題] 如何從某屬性指向其類別實體
時間Mon Nov 22 05:36:38 2010
※ 引述《justaID (快樂崇拜)》之銘言:
: 請問該如何才能從屬性指向其類別的實體?
硬要給你的問題一個解答,就是另外寫一個MyTimer類別
然後讓他有個parent屬性
然後在Apple裡面給growTimer一個setter, 指定自己為它的parent...
事實上就你目前的寫法,不容易達成你的需求,不建議這樣寫
既然你的Apple裡面已經有自己的Timer
那startGrow跟stopGrow也可以寫在Apple裡面
我貼完整一點XD
package {
import flash.display.MovieClip;
import flash.events.TimerEvent;
import flash.utils.Timer;
public class Apple extends MovieClip {
public var growTimer:Timer;
public var canEat:Boolean;
public function Apple() {
canEat = false;
}
public function startGrow(growTime:Number){
growTimer=new Timer(growTime,1);
growTimer.addEventListener(TimerEvent.TIMER_COMPLETE, stopGrow)
growTimer.start();
}
public function stopGrow(e:*=null){
growTimer.stop();
canEat=true;
//dispatchEvent(new Event('eatme'));
}
}
}
這樣的話Main只需要
var apple1=new Apple();
apple1.startGrow(1000);
其實版上的發問常出現這種情形
就好像走迷宮時遇到死巷
結果開始思考該如何打掉面前的牆壁一樣 XD
--
請千萬不要覺得我是在嘲笑 我絕對沒有那個意思
只是每次看到這種情形都覺得蠻趣味的而已
--
'Cause you are beautiful
your scars are beautiful
like the jade
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.224.40.207
※ 編輯: scars 來自: 61.224.40.207 (11/22 05:46)
推 justaID:感謝大大的建議! 事實上原本我是採寫在class裡的寫法 11/22 05:43
→ justaID:但會出現 error #1006: startGrow(或stopGrow)不是函數 11/22 05:45
→ justaID:的除錯訊息,最近剛學習.fla和.as分開的寫法,還不熟稔 11/22 05:46
→ justaID:google很久找不出解決方法,時間又緊迫,只好轉彎寫~"~ 11/22 05:47
→ justaID:二來也是好奇有沒有辦法從屬性指到類別實體 11/22 05:48
→ scars:不是函數這error還蠻奇怪的 你確定放的位置是在class裡嗎? 11/22 05:48
也有可能你沒把function宣告為public
※ 編輯: scars 來自: 61.224.40.207 (11/22 05:53)
推 justaID:應該沒錯吧@"@(如果錯在這,真該撞豆腐了) 11/22 05:54
→ justaID:package { 11/22 05:54
→ justaID: import flash.utils.Timer; 11/22 05:54
→ justaID: public class Apple extends MovieClip{ 11/22 05:54
→ justaID: var growTimer:Timer; var canEat:Boolean; } 11/22 05:55
→ justaID:(上一行最後的}是手誤) 11/22 05:56
→ justaID: public function startGrow() {...} 11/22 05:57
→ justaID: public function stopGrow(evt:TimerEvent):void {...} 11/22 05:57
→ justaID: } 11/22 05:57
→ justaID:} 11/22 05:58
→ justaID:以上,難道真錯在語法結構?@"@(猛汗) 11/22 05:58