作者aquarianboy (我是没牌的营养师!)
看板Flash
标题Re: 请问关於函式
时间Wed Apr 4 11:58:33 2007
※ 引述etrexetrex (ETREX)》之铭言:
: ※ 引述《aquarianboy (我是没牌的营养师!)》之铭言:
: : 不过还有更有趣的做法,就是来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这个方法
: : 供你参考 :)
: 这个部分似乎有误@@"
: 由於myClass是继承MovieClip而来的,而每个MovieClip都有自己的Depth
: 所以在实作(实体化)的时候应该是:
: 1.新增元件:勾选"汇出给AS使用"以及"AS2.0类别",名称皆与myClass相同
: 以求类别与MovieClip建立关联
: 2.this.attachMovie("myClass","myClass型态变数名称",深度);
其实在Flash里面,物件实体化的方法有不只一种:
一个是就如同ex大大写的,勾选AS2.0类别後
再把它拉到舞台上,不管是用滑鼠拉,或是用attachMovie都行
另一个是用new的方法直接「实体化」一个东西出来
所以
var xyz_mc:myClass = new myClass();
这行指的就是我用myClass类别,实体化一个xyz_mc出来
(其实在一般的OOP语言,这就是实体化罗)
而这个长出来的实体,也有sayHello的方法
也因为它是extends自MovieClip类别,所以它也有一般MC该有的property跟method
至於它是不是跟场景上实际的Movieclip有关连,那就是另一回事了 :)
我试过程式码执行的结果,其实是没问题的
只是不知道是不是原po要的东西 :)
PS: 我原来写的方法,其实是一般OOP的物件实体化的方法
--
睡眠不足总是不容易把要说的东西说清楚.. :)
--
http://www.eddie.com.tw/blog/
http://www.eddie.com.tw/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.133.136.105
1F:→ etrexetrex:大概懂 因为我做的类别刚好是必须在场景上出现的 04/04 13:04
2F:→ etrexetrex:所以才会有差异产生,用new的做法会看不到东西 04/04 13:04
3F:→ aquarianboy:其实也不见得看不到,要看class怎麽设计罗 :) 04/04 13:06
4F:推 etrexetrex:我用new的做法作不出来,楼上可以作一个new的范例吗XD 04/04 13:07
5F:推 aquarianboy:现在上班时间比较不方便,回家再做个出来好了 :) 04/04 13:16
6F:推 etrexetrex:YA~ 04/04 13:18
7F:推 jonathanmeow:嗯...oop真是个难懂的东西...感谢教学 04/05 09:33