سؤال

I'm trying to learn Flex, I setup a simple Air application with PHP server as dataserice...

In my php class there is a function counttotal that return a simple int value.

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

In the label I got the correct value, but I can't save and show the value into/from a simple variable...

هل كانت مفيدة؟

المحلول

That's because using the keyword as will make Flex to try to cast a type to another, with a risk that the cast fails. Here, you try to cast a String as an integer, which basically means you do the following :

take 'blabla' and check if it's an integer. If it is, put its value in count, otherwise put null in it.

What you want to do is transtype (not sure about the word, though) a String to an integer. To do this, use the following syntax :

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

The above means

Take lastResult, and convert it into a Number, and then into an int.

The conversion can fail (but it wont, as long as lastResult is the string representation of a valid number), and the syntax could be shorter, but in a nutshell, that's the difference between casting a type to another, and converting a type to another.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top