作者cjcat2266 (CJ Cat)
看板Flash
标题Re: [问题] 关於 AS3.0 变数范围 又一问......
时间Mon Apr 6 13:43:20 2009
※ 引述《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
1F:推 Lawnchern:感谢 Orz 04/06 15:56