作者sextitanic (阿信163)
看板Flash
標題Re: [問題] 一些剛學ActionScript2.0的小問題
時間Fri Nov 20 02:56:50 2009
其實不僅僅是剛學 AS2 的問題
也是剛學程式的問題
第 2 題的話有一些觀念要釐清
※ 引述《tomatos ()》之銘言:
: 恕只節錄需要講解的部份
:
: 我只會排出橫坐標
: function addimgs() {
: for (var i = 0; i<4; i++) {
: this.attachMovie("box","box"+i,i+50);
: this["box"+i]._x =101*i
: }
: }
以第 1 題來說
原po發現到如果把 _y = i*101,會是斜的一排
那就可以用巢狀迴圈來解決,也就是不只 1 個迴圈的意思
用 i 來控制橫向j控制縱向
_x = 101*i;
_y = 101*j
當一排用 i 跑完之後,j+1
再重跑一次i,這樣子後來用i產生的元件就會從第2排出現了
至於怎麼讓被點到的元件消失
既然可以對新增出來的元件更改其位置屬性
那自然也可以對其下滑鼠的偵測
只是把後面的 _x 改成 onRelease = function()
再用this. _visible = false 隱藏即可
:
: (問題二)跟上一個問題是不一樣的東西
: 舞台上右邊的圓球(circMc)移動到左邊
: 超出舞台之後又從右邊出現一直循環
: 我寫了if (this.circMc._x<Stage.width) {
: this.circMc._x = 700;
: }這段沒有反應
:
: this.circMc.onEnterFrame = function() {
: this._x -= 15;
: if (this.circMc._x<Stage.width) {
: this.circMc._x = 700;
: }
: }
:
這邊有一些觀念要講清楚,就是有關「this」
原po如果有學過 trace 這個指令的話,就可以在主場景的影格上寫
trace(this);
執行後就會看到它跳出 _level0 的字樣,代表在主場景
而當您用 this.circMc.onEnterFrame 之後,再在它的 function 裡面
再寫一個 trace(this);
就會發現它會不斷的跑 trace,而且是寫 _level0.circMc
所以當您在circMc 的 function 裡面寫 this.circMc._x
是代表 _level0.circMc.circMc,也就是說它會找您 circMc 裡面的 circMc 元件
因為你用 circMc 宣告出來的 function,在裡面用 this 就會代表它本身
故需要用 this._x 做判斷,方能有一個數值出現跟 Stage.width 做比較
這是程式語言要注意的部分
接下來是邏輯要注意的部分
場景上座標越左 x 越小,越上 y 越小
假設場景寬 500,所以 Stage.width 會是 500
circMc 放在場景上 x=400 的地方,每次執行會 -15
解釋起來就是
circMc的x座標 - 15;
如果 circMc 的x座標大於 500,則 circMc 的座標改到 700
400 < 500,所以 400-15 = 385
385 < 500,所以 385-15 = 360
在這邊只能說一句「程式是平的」,跟你的圓球說 bye bye 吧
所以應該是 if (this._x < 0) 才正確
可是這樣畫面上又會出現什麼問題呢?
當你製作元件的時候,會看到有一個 +
那一點就是你的元件放在主場景上的時候用來取決座標的點
所以當你用 if (this._x < 0) 來判斷,就會發現
怎麼球的最左邊碰到邊框就會突然消失又從右邊出現,畫面上不協調
這時只要改成 if (this._x < 0 - this._width) 即可
而要從最右邊出來,則 this._x = Stage.width 就好
有在球的影格裡面放很多顏色,但要怎麼讓球變顏色呢?
因為篇幅的關係,在此不能多說
關鍵字出現!!
偵測元件目前播放的影格可用: 元件名稱._currentframe
偵測元件總共有東西的影格數: 元件名稱._totalframes
我想要元件gotoAndStop到下一影格的簡單作法: 元件名稱.nextFrame()
再用 if 判斷,就可以解決原 po 的問題
PS:若是元件命名為 xxx 然後加 _mc,那按 . 的時候就會跳出影片片段的可用指令
若是 xxx 然後加 _btn,按 . 的時候則是會跳出按鈕的可用指令
後面加 txt 則是按 . 的時候會跳出文字方塊的指令
xxx_mc xxx_btn xxx_txt ,這樣就不用都自己手動 key 程式碼囉
最後附上完成的檔案聯結:
http://www.badongo.com/file/18480606
*
**
***
*
***
*****
如何用迴圈跑出上面圖形,想一下,你會得到許多
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.42.94.34
推 wljimkk:原來訴這樣喔... 11/20 03:02
→ tomatos:先謝謝幫我解答:)雖然有些老師沒教過,不過看得懂謝謝喔!! 11/20 03:19