作者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