作者versitility (ID 越長,責任越大。)
看板Flash
標題[問題] 動態建立物件的完整路徑?
時間Sun May 2 02:41:37 2010
小弟最近退伍在家,想熟析一下 FLASH,
剛好在3.0要出的時候沒繼續玩 FLASH,
簡直完全不一樣了阿 =口=
以下問題都是重新學習 AS3.0 產生的@@
--問題--
畫面上有一個黑色的方塊,當使用者左鍵點擊後,
會將此MC切成兩半且此兩半會互相彈開。
我的寫法是使用 ActionScript 建立出一個方形 MovieClip,
addEventListener 偵測 MovieClip 被點擊之後,
用 ActionScript 新增兩個 Shape 貼到 MovieClip 上,
並設為 MovieClip 的子物件。
讓左半邊往左邊移動,右半邊往右邊移動
(或上半往上移動,下半往下移動,隨機)
--程式碼開始--
function makeRect():void{
//...
//隨機取一條線切開黑色方塊並依該線建立兩個並排等於原方塊大小的方塊。
//中略
//...
timer(); //呼叫下面的計時器
}
function timer():void {
var myTimer:Timer = new Timer(40, 30);
myTimer.addEventListener("timer", splitStart);//呼叫下面移動函式
myTimer.start();//啟動計時器
}
function splitStart(e:TimerEvent):void { //方塊移動函式
var Stagen=Stage;
Stagen.square.rect1.x--;//square 為原始方塊,rect1, rect2
Stagen.square.rect2.x++;
分別為新增出來的兩個方塊。
}
--程式碼結束--
--錯誤訊息--
TypeError: Error #1010: 詞彙未定義且沒有屬性。
at TimeWorL_fla::MainTimeline/splitStart()
at flash.utils::Timer/flash.utils:Timer::_timerDispatch()
at flash.utils::Timer/flash.utils:Timer::tick()
方塊移動函式內的 "var Stagen=Stage;" 是來版上找答案的時候看到有人寫
"var Root=root;" 有抓到主場景的東西,我試過 root 的寫法錯誤訊息也是如上...
請教各位前輩該如何找到動態建立物件的真實路徑呢...
--
題外話 1.)
另外請問以AS建立的物件要用迴圈動畫是不是一定要用 setInterval 或 timer 呢?
我直接用 for 迴圈去漸變一個物件的位置都是一執行馬上到位 -.-
timer 還不是很熟...不知道這樣用對不對..
題外話 2.)
有想到如果這樣寫
function splitStart(n=rect1 , m=rect2):void{
n.x--;
m.x++;
}
再從 makeRect() 呼叫 timer() 時把這兩個名稱丟進來...
可是我寫不出來...不知道是不是異想天開...
請各位大大賜教了 <0>
--
j&= y+ y* jv+ yy-v v &
wE!" j17$T 7MPC NU$E- Ej&v-
O*K^ yHH:Ovm+ UMMK BMNTO: H1="7'
vM1H1 jB-j1 "wHhHh* /$B]B- BKJUK
^HI'OH j""^N1 "OHOK~ H$H"Da jP'N ^
"` O| " jvHT T ~ "" "
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.123.85.220
→ versitility:感謝e大回應,可是我用中斷點去主控台看,兩個 rect 05/02 03:10
→ versitility:(方塊)都有 stage 屬性耶@@ 05/02 03:10
推 scars:stage跟Stage不一樣 05/02 07:18
※ 編輯: versitility 來自: 122.123.83.90 (05/02 13:45)