0

我正在尝试学习 Flex,我使用 PHP 服务器作为数据服务设置了一个简单的 Air 应用程序......

在我的 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();"/>

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

4

1 回答 1

1

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

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

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

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

以上是指

取lastResult,将其转换为Number,然后转换为int。

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

于 2011-09-20T09:31:12.150 回答