我正在尝试学习Flex,我使用PHP服务器设置了一个简单的Air应用程序作为dataserice ...
在我的php类中有一个函数counttotal
,它返回一个简单的int
值。
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:demologicaclass="services.demologicaclass.*"
width="682" height="397" showStatusBar="false" initialize="init()">
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.FlexEvent;
protected var count:int = 0;
protected function init():void
{
counttotalResult.token = logicaservice.counttotal();
count = counttotalResult.lastResult as int;
}
protected function get_count():void
{
Alert.show(count as String);
}
.....
.....
<s:Label id="countitems" left="10" bottom="39" width="221" height="21"
fontSize="20"
fontWeight="bold" text="{counttotalResult.lastResult as String}"/>
<s:Button right="10" bottom="39" label="Controlla" click="get_count();"/>
在标签中我得到了正确的值,但我无法保存并在简单变量中显示值...
答案 0 :(得分:1)
这是因为使用关键字作为会使Flex尝试将类型转换为另一个类型,但存在转换失败的风险。在这里,您尝试将String转换为整数,这基本上意味着您执行以下操作:
取'blabla'并检查它是否为整数。如果是,请将其值放入 count,否则将null放入其中。
你想要做的是将一个字符串变换为整数的transtype(不确定这个词)。为此,请使用以下语法:
count = int(Number(counttotalResult.lastResult));
上述意味着
获取lastResult,并将其转换为数字,然后转换为int。
转换可能会失败(但它不会,只要lastResult是有效数字的字符串表示形式),语法可能会更短,但简而言之,这是将类型转换为另一种类型与转换之间的区别一种类型到另一种。