作者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
→ etrexetrex:大概懂 因為我做的類別剛好是必須在場景上出現的 04/04 13:04
→ etrexetrex:所以才會有差異產生,用new的做法會看不到東西 04/04 13:04
→ aquarianboy:其實也不見得看不到,要看class怎麼設計囉 :) 04/04 13:06
推 etrexetrex:我用new的做法作不出來,樓上可以作一個new的範例嗎XD 04/04 13:07
推 aquarianboy:現在上班時間比較不方便,回家再做個出來好了 :) 04/04 13:16
推 etrexetrex:YA~ 04/04 13:18
推 jonathanmeow:嗯...oop真是個難懂的東西...感謝教學 04/05 09:33