ActionScript3中的Number与String类型的相互转化

 做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 

版权声明:本站文章除注明转载外,均为本站原创或翻译,版权所有。若转载请注明出处,请尊重他人劳动.



你可能感兴趣的:(ActionScript3中的Number与String类型的相互转化)