請問 如何先自動執行一次滑鼠動作函式

17 views
Skip to first unread message

LUCAS HUANG

unread,
Mar 9, 2010, 11:56:24 PM3/9/10
to 台灣 Adobe 使用者俱樂部
大家好 請問一下 本來選單的按下程式  現在需要讓它自動執行一次
因為希望程式能夠乾淨一點 希望能夠一樣透過相同函式
這樣要怎麼呼叫呢?


場景上只有一個a_mc的按鈕

a_mc.addEventListener(MouseEvent.CLICK, a_mc_CLICK);
function a_mc_CLICK(e:MouseEvent):void {
trace("按下");
}

//此時希望一開始先自動按下一次
a_mc_CLICK();
這樣撰寫的話 會因為沒有引數而錯誤
a_mc_CLICK(a_mc);
這樣也是會錯誤


請麻煩知道的人告知ㄧ下
謝謝

一錄

unread,
Mar 10, 2010, 12:20:11 AM3/10/10
to au...@googlegroups.com
如果不會用到e的話倒是可以這樣做~可以暫時解決你的需求~

a_mc_CLICK(null);




--
您收到此郵件,是因為您訂閱了 Google 網上論壇的「台灣 Adobe 使用者俱樂部 」群組。
如要在此群組張貼留言,請寄電子郵件至 au...@googlegroups.com
如要取消訂閱此群組,請寄電子郵件至 augtw-un...@googlegroups.com
如需更多選項,請造訪此群
組:http://groups.google.com.tw/group/augtw?hl=zh-TW?hl=zh-TW

一錄

unread,
Mar 10, 2010, 12:23:34 AM3/10/10
to au...@googlegroups.com
不好意思~我有把字體加粗~結果看起來變成有多*號
請無視*號~~
a_mc_CLICK(null);
即可

Hoskie

unread,
Mar 10, 2010, 12:38:56 AM3/10/10
to au...@googlegroups.com
我想,這是比較簡單的方法.

clickHandler();

a_mc.addEventListener(MouseEvent.CLICK, a_mc_CLICK);

function a_mc_CLICK(e:MouseEvent):void {
clickHandler();
}

function clickHandler():void{
trace("按下");
}


吳世奇 Shih-Chi Wu
email:skin...@gmail.com
TEL:(07)372-4923 #2919

Hoskie

unread,
Mar 10, 2010, 12:46:36 AM3/10/10
to au...@googlegroups.com
或是a_mc_CLICK(new MouseEvent(MouseEvent.CLICK));
也是可以的。但是e也是不能用的。


吳世奇 Shih-Chi Wu
email:skin...@gmail.com
TEL:(07)372-4923 #2919

高興

unread,
Mar 10, 2010, 3:14:31 AM3/10/10
to 台灣 Adobe 使用者俱樂部
你要的應該是這樣子

a_mc.addEventListener(MouseEvent.CLICK, a_mc_CLICK);
function a_mc_CLICK(e:MouseEvent):void {
trace("按下2");
}

//加底下這一行==================================
a_mc.dispatchEvent(new MouseEvent(MouseEvent.CLICK));

一錄

unread,
Mar 10, 2010, 4:19:29 AM3/10/10
to au...@googlegroups.com
原來有這樣的用法~
這樣一來e也得的到事件~~(筆記~)



LUCAS HUANG

unread,
Mar 10, 2010, 4:39:24 AM3/10/10
to 台灣 Adobe 使用者俱樂部
感謝大家的回答
想要再進階問一下 因為我之前想要簡化問題 結果好像簡化大多了

我重新舉個例子 假裝他只有兩個按鈕 a_mc和b_mc
基本上 我做了一個動態選單 這個選單是從xml抓資料(數量也不一定) 然後 自動產生出來的
但是他其實到多少我也不確定 因為客戶端 開放給他改xml(可能只有a_mc,b_mc 也可能有a_mc到z_mc)


//從xml抓資料並且依照數量自動命名
a_mc.addEventListener(MouseEvent.CLICK, 按下選單);
b_mc.addEventListener(MouseEvent.CLICK, 按下選單);


function 按下選單(e:MouseEvent):void {
trace("獨取外部檔案"+e.currentTarget.name+".swf...等一堆程式");
}


本來的架構是上面這樣
因為我裡面有去抓e.currentTarget.name
所以我沒辦法把它另外寫兩個非動態的function在外面 因為數量是動態的關係
所以現在要加上自動執行一次這個功能變的不知所措


有沒有辦法能夠執行 "按下選單" 這個滑鼠事件函式並且把a_mc帶進去呢?
謝謝

Hoskie

unread,
Mar 10, 2010, 4:44:53 AM3/10/10
to au...@googlegroups.com
那你全部的按鈕一開始都要先按過一遍嗎?

吳世奇 Shih-Chi Wu
email:skin...@gmail.com
TEL:(07)372-4923 #2919

LUCAS HUANG

unread,
Mar 10, 2010, 5:37:24 AM3/10/10
to 台灣 Adobe 使用者俱樂部
a_mc.dispatchEvent(new MouseEvent(MouseEvent.CLICK));

喔喔!! 我弄了很久才懂了這個用法
剛弄不出來
也可以帶引數 函式也可以集中 不用重新寫一個
原來是這樣 太感謝了


To Hoskie:
不用全部按一遍 只要按一個
不過照"高興"的那個函式
就可以想要執行什麼滑鼠動作都可以了


謝謝

Reply all
Reply to author
Forward
0 new messages