Преобразование объекта данных в Int в проекте Flex Mobile - PullRequest
1 голос
/ 31 августа 2011

Я занимаюсь разработкой мобильного проекта во Flash Builder с использованием flex 4.5. Я очень новичок в освоении, с некоторым опытом в Obj-C.

Текущая настройка:

Я передаю свойство text компонента ввода текста во второе представление через navigator.pushview {view.Someview, data}

public function doSomething():void{
            navigator.pushView(Session_View, timeInput.text);
        }

Это успешно передает текст, который я вставил в textinput, в экземпляр Session_View, и я могу отобразить этот текст в метке в mxml; Тем не менее, я хотел бы взять переданный текст и преобразовать его в целое число для использования в моей логике.

В Action Script я попробовал функцию parseInt (), но безуспешно. Я также попытался присвоить данные переменной в actionscript безуспешно.

Знает ли какой-нибудь флекс ниндзя, что я делаю неправильно, или лучший способ передать простую строку между представлениями в flex mobile и затем преобразовать эту строку в int?

Спасибо

1 Ответ

1 голос
/ 31 августа 2011

Должны работать и parseInt, и приведение к Number.

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
                xmlns:mx="library://ns.adobe.com/flex/mx"
                xmlns:s="library://ns.adobe.com/flex/spark"
                creationComplete="application1_creationCompleteHandler(event)"
                >
    <fx:Script>
        <![CDATA[
            import mx.events.FlexEvent;

            [Bindable]
            public var intA:int;
            [Bindable]
            public var intB:int;

            protected function application1_creationCompleteHandler(event:FlexEvent):void
            {
                var s:String = "55";
                intA = parseInt(s);
                intB = Number(s);

            }

        ]]>
    </fx:Script>
    <s:VGroup>
        <s:Label text="{intA}" />
        <s:Label text="{intB}" />
        <s:Label text="{intA+intB}" />
    </s:VGroup>
</s:Application>

Редактировать: переопределить установленные данные.

С учетом того, что вы нажимаете, вы сможете получить доступ к переменной из объекта data.

var someInteger:int = data.integerProperty;

Если вам нужно что-то делать с этим свойством каждый раз, когда данные вставляются в представление, а не только в первый раз, когда вы должны переопределить метод set data.

public override function set data(value:Object):void{
    super.data = value;
    var someInteger:int = data.integerProperty;
}
...