多個按鈕執行類似事件

1 view
Skip to first unread message

AStw

unread,
Sep 29, 2008, 9:53:35 AM9/29/08
to 台灣 Adobe 使用者俱樂部
您好 :

我使用ActionScript3.0 ,目前遇到一個問題:

在主場景放二十個按鈕(按鈕的實體名稱為b1_btn ; b2_btn
......),希望按下按鈕能對應下載外部二十個檔案(檔案名稱為b1.jpg ; b2.jpg......),
除了讓每個按鈕個別偵聽事件的寫法,是否有其他方式能夠按下按鈕後,讓外部相同檔名的檔案下載到主場景(例如:按下b1_btn,即下載外部檔案
b1.jpg)。

謝謝大家!

Neil

unread,
Sep 29, 2008, 10:14:21 PM9/29/08
to 台灣 Adobe 使用者俱樂部
我想應該可以先設一個陣列,儲存陣列圖片的位置資訊後,按下按鈕判斷相對應的資訊。

idarfan

unread,
Oct 4, 2008, 9:57:04 PM10/4/08
to 台灣 Adobe 使用者俱樂部
很難明白您所要表達的是想要怎麼做? 何不把你的原始檔貼出來. 才好判斷要怎麼幫你改寫?
就上面你所陣述的. 我所理解的是你要做二十個按鈕但分別要對應 二十張圖片對嗎?
那你不就要針對二十個按鍵. 寫二十個按鈕的個別監聽事件? 你想表達的這樣嗎?

aday

unread,
Oct 5, 2008, 10:14:16 AM10/5/08
to 台灣 Adobe 使用者俱樂部

我想您想做的可能是如下的類似程式碼

var btnArr:Array=new Array();
for(var i=1;i<=20;i++){
//假設BtnClass是元件庫裡某個按鈕的類別名稱
btnArr[i]=new BtnClass();
//假設每排有5個按鈕靠在一起
btnArr[i].x=btnArr[i].width*((i-1)%5);
btnArr[i].y=btnArr[i].height*(Math.floor((i-1)/5));
addChild(btnArr[i]);
btnArr[i].name="b"+i;
btnArr[i].addEventListener(MouseEvent.CLICK,onBtnClick);
}

function onBtnClick(e:MouseEvent):void{
trace((e.currentTarget as BtnClass).name); //會 trace出 b1,b2,....b20 以此
類推
//底下載入圖片的程式碼請自己實作一下

Sepher

unread,
Oct 5, 2008, 8:47:25 PM10/5/08
to 台灣 Adobe 使用者俱樂部
不太可能會有和"按鈕相同名稱"的外部檔案,因為如果你去深入看的話,會發現你的命名,和他實際動作的名稱不一定會相同。
為每個按鈕加入一個事件監聽是唯一的作法。
不然就要像我幫我現在公司寫的遊戲引擎一樣,使用滑鼠座標監聽,然後再判斷他是點擊到哪一個物件。...但是我這樣子做不一定會比較好,只是比較符合我
公司的需求而已。


On Sep 29, 9:53 pm, AStw <bomf...@gmail.com> wrote:
Reply all
Reply to author
Forward
0 new messages