看板 Flash 關於我們 聯絡資訊
其實不僅僅是剛學 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