Flex получает текстовое значение из метки и помещает его в переменную - PullRequest
0 голосов
/ 24 ноября 2011

Как мне это сделать в Flex / Flash Builder при загрузке страницы?

Это мой ярлык:

<s:Label id="hallo" text="hallo"/>

И вот как я пытаюсь получить текстовое значение в переменную:

public var halloText:String = hallo.text;

Но когда я запускаю это, я получаю ActionScript Ошибка # 1009: Не удается получить доступ к свойству или методу с нулевым значением ...

1 Ответ

1 голос
/ 05 декабря 2011

Похоже, вы пытаетесь получить доступ к свойству .text до его создания.

Предположим, у вас есть файл mxml, который выглядит следующим образом:

    <?xml version="1.0" encoding="utf-8"?>
    <test:LabelTester pageTitle="Label Test" 
    xmlns:test=".*"
    xmlns:fx="http://ns.adobe.com/mxml/2009"
    xmlns:s="library://ns.adobe.com/flex/spark">

        <s:Label id="hallo" text="hallo"/>

    </test:LabelTester>

и класс приложенияназывается LabelTester, который выглядит примерно так:

public class LabelTester extends Application {
    public var hallo:Label;
    function LabelTester() {
        this.traceText();
    }

    private function traceText():void {
        var halloText:String = this.hallo.text;
        trace(halloText);
    }
}

Тогда вы получите ошибку времени выполнения, которую вы описываете.

Но затем измените конструктор на это:* и добавьте:

private function handleCreation(creation:FlexEvent):void { this.traceText(); }

, и если вы запустите его в отладчике, вы должны увидеть правильное значение в окне консоли.

...