作者aquarianboy (我是沒牌的營養師!)
看板Flash
標題Re: 請問關於函式
時間Wed Apr 4 01:22:21 2007
※ 引述《oqangeloq (OQ)》之銘言:
: 在按鈕或影片片段類別中 是否不能引用函式呢?
: 例如:
: 影片片段.mouseDown = function() {
: 函式(參數);
: }
: 我打這樣函式是不會作用
: 後來用addListener 解決了
: 是否有特殊方式 讓它可以作用
: 還是一定不行呢?
不知道這是不是你要的
例如,我在場景上有一個movieclip,名字叫abc_mc
我想幫它加一個功能,例如叫sayHello()
在時間軸上就加一段:
MovieClip.prototype.sayHello = function(){
trace("hello!");
}
這樣在這個場景裡的MovieClip,它就會多了一個功能叫sayHello()
abc_mc.sayHello(); //會trace出"hello"的字串
def_mc.sayHello(); //也一樣
不過還有更有趣的做法,就是來OOP(Objected-Oritented Programming)來設計
建立自己的類別,增加該類別的屬性(property)或方法(method)
class myClass extends MovieClip{
function myClass(){
//Contrustor
}
function sayHello(){
trace("hello");
}
}
//以上程式碼需另外存成myClass.as,類別名稱與檔名大小寫需相同
var xyz_mc:myClass = new myClass();
xyz_mc.sayHello(); //也會trace出"hello"
這樣一來只要你的movieclip是實體化或是繼承自myClass類別
它就內建有sayHello這個方法
供你參考 :)
--
http://www.eddie.com.tw/blog/
http://www.eddie.com.tw/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.172.127
1F:推 oqangeloq:恩 又學到新東西了 不過感覺不太一樣 04/04 01:36
2F:→ oqangeloq:abc_mc.mouseDown = function (){ 04/04 01:36
3F:→ oqangeloq: doMove("abc_mc",5,6,10); 04/04 01:37
4F:→ oqangeloq: }; 我的問題是 這種情形 doMove不會執行 @@ 04/04 01:38
5F:推 aquarianboy:因為abc_mc本身並沒有mouseDown這個function啊 :) 04/04 02:10
6F:→ aquarianboy:mouseDown它應該是寫在listener object上而不是MC 04/04 02:11
7F:→ aquarianboy:listener的部份可搜尋版上相關文章 :) 04/04 02:12
※ 編輯: aquarianboy 來自: 220.135.172.127 (04/04 04:59)
8F:推 etrexetrex:如果你的 doMove 寫在_root,你應該要寫這樣: 04/04 10:28
9F:→ etrexetrex:_root.doMove("abc_mc",5,6,10); 04/04 10:29
10F:→ etrexetrex:現在才發現很怪的一點:為什麼是"abc_mc"? 函數讀字串 04/04 10:30
11F:→ etrexetrex:而不是指標,我以為傳指標會比較好:) 04/04 10:30
12F:→ etrexetrex:不知oqangeloq板友使用的flash版本是哪個@@? 04/04 10:31
13F:推 oqangeloq:我是用 2004 MX @@ 04/04 10:57
14F:推 oqangeloq:但是mouseDown不是MovieClip的處理常式嘛? 04/04 11:06
15F:→ oqangeloq:恩 我有用listener解決了 只是想知道這個部份的原因:S 04/04 11:06
16F:→ oqangeloq:我的doMove是include在時間軸的 04/04 11:12
17F:推 aquarianboy:mouseDown好像不是MovieClip裡的東西 :) 04/04 12:02