Re: [問題] 如何從某屬性指向其類別實體

看板Flash作者 (scars)時間15年前 (2010/11/22 05:36), 編輯推噓2(2015)
留言17則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《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)

11/22 05:43, , 1F
感謝大大的建議! 事實上原本我是採寫在class裡的寫法
11/22 05:43, 1F

11/22 05:45, , 2F
但會出現 error #1006: startGrow(或stopGrow)不是函數
11/22 05:45, 2F

11/22 05:46, , 3F
的除錯訊息,最近剛學習.fla和.as分開的寫法,還不熟稔
11/22 05:46, 3F

11/22 05:47, , 4F
google很久找不出解決方法,時間又緊迫,只好轉彎寫~"~
11/22 05:47, 4F

11/22 05:48, , 5F
二來也是好奇有沒有辦法從屬性指到類別實體
11/22 05:48, 5F

11/22 05:48, , 6F
不是函數這error還蠻奇怪的 你確定放的位置是在class裡嗎?
11/22 05:48, 6F
也有可能你沒把function宣告為public ※ 編輯: scars 來自: 61.224.40.207 (11/22 05:53)

11/22 05:54, , 7F
應該沒錯吧@"@(如果錯在這,真該撞豆腐了)
11/22 05:54, 7F

11/22 05:54, , 8F
package {
11/22 05:54, 8F

11/22 05:54, , 9F
import flash.utils.Timer;
11/22 05:54, 9F

11/22 05:54, , 10F
public class Apple extends MovieClip{
11/22 05:54, 10F

11/22 05:55, , 11F
var growTimer:Timer; var canEat:Boolean; }
11/22 05:55, 11F

11/22 05:56, , 12F
(上一行最後的}是手誤)
11/22 05:56, 12F

11/22 05:57, , 13F
public function startGrow() {...}
11/22 05:57, 13F

11/22 05:57, , 14F
public function stopGrow(evt:TimerEvent):void {...}
11/22 05:57, 14F

11/22 05:57, , 15F
}
11/22 05:57, 15F

11/22 05:58, , 16F
}
11/22 05:58, 16F

11/22 05:58, , 17F
以上,難道真錯在語法結構?@"@(猛汗)
11/22 05:58, 17F
文章代碼(AID): #1CwP3e_c (Flash)
文章代碼(AID): #1CwP3e_c (Flash)