Получите и сохраните ценность от Dataservice Flex - PullRequest
0 голосов
/ 20 сентября 2011

Я пытаюсь изучить Flex, я устанавливаю простое приложение Air с PHP-сервером как 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 Ответ

1 голос
/ 20 сентября 2011

Это потому, что использование ключевого слова в качестве заставит Flex попытаться привести тип к другому, с риском того, что приведение не удастся.Здесь вы пытаетесь привести String как целое число, что в основном означает, что вы делаете следующее:

возьмите 'blabla' и проверьте, является ли оно целым числом.Если это так, поместите его значение в count, в противном случае положите в него значение null.

То, что вы хотите сделать, это перевести (хотя и не уверен насчет слова) строку в целое число.Для этого используйте следующий синтаксис:

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

Вышеуказанное означает

Возьмите lastResult и преобразуйте его в Number, а затем в int.

Преобразование может завершиться неудачно (но это не произойдет, если lastResult является строковым представлением действительного числа), а синтаксис может быть короче, но в двух словах, это разница между приведением типа к другому,и преобразование типа в другой.

...