从Dataservice Flex获取并节省价值

时间:2011-09-20 09:25:54

标签: flex flex4 dataservice

我正在尝试学习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();"/>

在标签中我得到了正确的值,但我无法保存并在简单变量中显示值...

1 个答案:

答案 0 :(得分:1)

这是因为使用关键字作为会使Flex尝试将类型转换为另一个类型,但存在转换失败的风险。在这里,您尝试将String转换为整数,这基本上意味着您执行以下操作:

  

取'blabla'并检查它是否为整数。如果是,请将其值放入   count,否则将null放入其中。

你想要做的是将一个字符串变换为整数的transtype(不确定这个词)。为此,请使用以下语法:

count = int(Number(counttotalResult.lastResult));

上述意味着

  

获取lastResult,并将其转换为数字,然后转换为int。

转换可能会失败(但它不会,只要lastResult是有效数字的字符串表示形式),语法可能会更短,但简而言之,这是将类型转换为另一种类型与转换之间的区别一种类型到另一种。