Создание кнопки с использованием AS3 во Flex 4? - PullRequest
1 голос
/ 04 января 2011

Я использовал этот код в Flex 3.5 SDK с Flash Builder 4 внутри функции, которая вызывается при creationComplete приложения MXML.

var myButton:Button = new Button;
myButton.label = "test";
addChild(myButton);
Alert.show("Button Created");

Однако он отлично работает, когда я использую его на том же самомFlash Builder 4 только на этот раз, под Flex 4.0 SDK, ничего не происходит.Alert.show () даже не показывает, что означает, что он даже не доходит до этой точки.

Итак, мой вопрос, что не так?Я что-то упустил?

PS Мне нужно , чтобы иметь возможность создавать / удалять компоненты MXML на лету (во время работы приложения).Это всего лишь тестовый скрипт, и я с треском проваливаюсь в достижении того, что мне нужно.

Ответы [ 3 ]

1 голос
/ 04 января 2011

В Spark вам нужно использовать addElement вместо addChild

var b:Button = new Button();
addElement(b);

Я не уверен, почему ваше предупреждение не работает: \

1 голос
/ 05 января 2011

Обычно вы создаете пользовательский интерфейс в MXML, но в некоторых случаях вам нужно создавать элементы пользовательского интерфейса на лету, и, как упоминалось в другом постере, addElement () является ключом для контейнеров Flex 4 Spark.

При добавлении компонентов в контейнеры MX (из Flex 3) вы по-прежнему используете addChild () в Flex 4. Вам необходимо использовать addElement () только при добавлении в контейнеры Spark.

Конечно, Adobe рекомендует использовать контейнеры Spark, когда есть несколько сопоставимый контейнер MX.

0 голосов
/ 04 января 2011

Лучше делать это гибким способом.

<fx:Script>
    <![CDATA[
        import mx.controls.Alert;
        private function alert():void
        {
            Alert.show("Button added to stage");
        }
    ]]>
</fx:Script>

<s:Button id="myButton" label="test" addedToStage="alert()"/>

Вы не можете добавить кнопку, используя просто addChild в flex.Сначала вам нужно создать UIComponent, а затем добавить кнопку в UIComponent.Это немного отличается от способа вспышки.

...