Re: [問題] 關於 AS3.0 變數範圍 又一問......
※ 引述《Lawnchern ()》之銘言:
: ※ 引述《admon (大毛)》之銘言:
: : (root as MovieClip).myVar
: ^^^^^^^^^^^^^^^^^
: 不好意思 我是初學 想請教一下,這段是可以照抄的東西嗎@@?
: 不太懂 root as MovieClip .... ^^"
這是type casting
因為root的type是DisplayObject
DisplayObject本身沒有時間軸資料,也不是dynamic class
為了"說服"編譯器這個變數你確定是MovieClip
就要做type casting(轉型)
type casting有兩種寫法
第一種寫法如原po,是 "A as B"
第二種寫法是 "B(A)"
所以 (root as MovieClip).myVar 和 MovieClip(root).myVar 意思都一樣
順帶一提,如果casting失敗 (即B不是A的subclass)
值將會是 null
其實還有一些非繼承關係的轉型例外
最常見的是Number, int, uint轉String
var i:Number = 254;
var str:String = String(i); 或者 i.toString();
惟toString()可以指定底數
例如:
i.toString() == i.toString(10) == "254"; //十進位
i.toString(16) == "fe"; //十六進位
還有一些例外可以參考F1的AS3說明書
--
CJ Cat = Croa'J Cat = Cockroach Cat = 西街凱特 = 蜚蠊貓 = 蟑螂貓
Blog http://cjcat.blogspot.com
Gallery http://cjcat2266.deviantart.com
ptt2 Board CJWorkshop - 阿多比閃光(Adobe Flash)研討區
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.79.129
推
04/06 15:56, , 1F
04/06 15:56, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 4 篇):