做Flexpaper的二次开发时,由于要获得文档的总页数与当前页数,就调用此文档API中的方法getCurrPage()获得当前文档所在的页数,为了测试获得的页数,就Alert了一下,我就用了如下语句:
1
|
Alert.show(viewer.getCurrPage()
as
String
);
|
进行测试,郁闷的是弹出的总是null。
由于好长时间没搞flex了,ActionScript3的语法都忘得差不多了,我记得以前好像as是可以类型转化的,怎么弹出的是空呢?
查询ActionScript3的API文档时,as的用法解释如下:
◆用法:
expression as datatype
计算第一个操作数(expression)指定的表达式是否为第二个操作数(datatype)指定的数据类型的成员。如果第一个操作数是该数据类型的成员,则结果为第一个操作数。否则,结果为 null 值。第二个操作数所用表达式的计算结果必须为数据类型。
◆ 操作数:
expression:* — 要针对指定的数据类型进行检查的值。
datatype:Class — 用于计算 expression 操作数的数据类型。不能使用特殊的 * 类(即无类型)。
◆结果
Object — 如果 expression 是 datatype 中指定的数据类型的成员,结果为 expression。否则,结果为 null 值。
◆示例
以下示例创建了一个名为 myArray 的简单数组,并将 as 运算符用于各种数据类型。
public var myArray:Array = ["one", "two","three"];
trace(myArray as Array); //one,two,three
trace(myArray as Number); // null
trace(myArray as int); //null
从上面的语法及例子可以看出来在AS3中String与Number相互数据类型并不对等,这就难怪重视null了。
Number转String的正确的写法是:(String)number
上面的语句应该是 :
1
|
Alert.show((
String
)(viewer.getCurrPage()));
|
我相信String转Numer也是如此,就不赘述了。
本文链接:http://www.dianfusoft.com/showDetail.action?articleId=130417231046
版权声明:本站文章除注明转载外,均为本站原创或翻译,版权所有。若转载请注明出处,请尊重他人劳动.