作者aquarianboy (我是沒牌的營養師!)
看板Flash
標題Re: [問題] 請問一個class蠢問題中的蠢問題 Orz
時間Sun Aug 12 00:14:33 2007
※ 引述《fridayjason (I'm not Beloved)》之銘言:
: 可能是今天寫了一整天 開始腦殘了 Orz
: 我原本是想測試一下flash中對class運算子的支援性
: 所以先寫了一個class當測試用 程式碼如下:
: //[於_root的圖層1寫]
: var xx:Test;
: var yy:Test;
: xx.Test(1,2);
: yy.Test(4,8);
: trace(xx.m);
: //[於Test.as中寫]
: class Test{
: var n:Number;
: var m:Number;
: public function Test(x:Number,y:Number){
: n=x; m=y;};
: };
: 結果trace的輸出結果是"undefined"
: 可以幫忙看一下是哪裡的蠢問題嗎 謝謝 Orz
你沒把Test類別實體化呀 :)
而且利用建構子就可以把資料傳進去了
//Test.as
class Test {
var n:Number;
var m:Number;
function Test(x:Number,y:Number) {
n=x;
m=y;
}
}
//Demo.fla
stop();
var xx:Test = new Test(1,2); //實體化,並給予參數
var yy:Test = new Test(4,8); //實體化,並給予參數
trace(xx.m); //得到2
當然,物件若不經由類別實體化
透過靜態方法(static method)也是可以直接使用裡面的方法
例如Math類別,可以直接的使用Math.abs();
供你參考 :)
PS:上面為AS2的寫法,AS3會有些不同
--
http://www.eddie.com.tw/blog/
http://www.eddie.com.tw/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.172.127
推 fridayjason:Orz 原來是少了 = new Test(1,2); 建構子我有寫XD 08/12 00:17
→ fridayjason:那麼想再請問一下 如果希望Test類別的.m和.n 08/12 00:18
→ fridayjason:跟另外一個同為Test類別的物件相加 operator overflow 08/12 00:18
→ fridayjason:(overloading)該怎麼宣告呢 @@" 謝謝 m(__ __)m 08/12 00:18
推 aquarianboy:抱歉,看不太懂,不太了解意思 :) 08/12 01:03
推 cjcat2266:AS2.0好像沒有operator overloading的功能喔 08/12 01:39
→ cjcat2266:要自己寫一個接受兩個class的參數(左右operad)的函式 08/12 01:40