看板 Flash 關於我們 聯絡資訊
※ 引述《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
oqangeloq:恩 又學到新東西了 不過感覺不太一樣 04/04 01:36
oqangeloq:abc_mc.mouseDown = function (){ 04/04 01:36
oqangeloq: doMove("abc_mc",5,6,10); 04/04 01:37
oqangeloq: }; 我的問題是 這種情形 doMove不會執行 @@ 04/04 01:38
aquarianboy:因為abc_mc本身並沒有mouseDown這個function啊 :) 04/04 02:10
aquarianboy:mouseDown它應該是寫在listener object上而不是MC 04/04 02:11
aquarianboy:listener的部份可搜尋版上相關文章 :) 04/04 02:12
※ 編輯: aquarianboy 來自: 220.135.172.127 (04/04 04:59)
etrexetrex:如果你的 doMove 寫在_root,你應該要寫這樣: 04/04 10:28
etrexetrex:_root.doMove("abc_mc",5,6,10); 04/04 10:29
etrexetrex:現在才發現很怪的一點:為什麼是"abc_mc"? 函數讀字串 04/04 10:30
etrexetrex:而不是指標,我以為傳指標會比較好:) 04/04 10:30
etrexetrex:不知oqangeloq板友使用的flash版本是哪個@@? 04/04 10:31
oqangeloq:我是用 2004 MX @@ 04/04 10:57
oqangeloq:但是mouseDown不是MovieClip的處理常式嘛? 04/04 11:06
oqangeloq:恩 我有用listener解決了 只是想知道這個部份的原因:S 04/04 11:06
oqangeloq:我的doMove是include在時間軸的 04/04 11:12
aquarianboy:mouseDown好像不是MovieClip裡的東西 :) 04/04 12:02