Добавить элемент в представление мобильного приложения в actionScript - PullRequest
0 голосов
/ 15 марта 2011

У меня есть программа со списком предметов. Элемент - это класс ActionScript, расширяющий View. Когда я нажимаю на список, он выдвигает вид. В конструктор этого класса я добавляю несколько кнопок, и у меня есть функция, которая добавляет еще одну кнопку. Моя проблема в том, что в представлении отображается только кнопка create в конструкторе, а не кнопка create в функции.

Класс

package 
{   

    import spark.components.Button;

    public class Application extends View
    {       
        public function Application()
        {
            var bt:Button = new Button();
            bt.label = "In C";
            addElement(bt);
        }

        public function addButton():void {          
            var b:Button = new Button();
            b.label = "Olé";
            addElement(b);
            visible = true;         
        }       
    }
}

Первый вид

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" title="Home"
    visible="false" creationComplete="retrieveApplication(event)">
<fx:Script>
    <![CDATA[
        import ...

        protected function retrieveApplication(event:FlexEvent):void
        {
            ...
            var application:Application = new Application();
            ...                     
            application.addButton();
            this.visible = true;
        }

        protected function launchApplication(event:IndexChangeEvent):void
        {
            navigator.pushView(Application);
        }

    ]]>
</fx:Script>
<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:Button x="10" y="10" width="460" label="Button" click="launchApplication(event)"/>

Что я сделал не так?

1 Ответ

0 голосов
/ 15 марта 2011

Обратите внимание, что вы передаете ссылку на класс в pushView, а не на экземпляр. Это означает, что вы не передаете экземпляр приложения, созданный вами в методе retrieveApplication.

Flex создает экземпляр экземпляра представления после вызова pushView. Так что метод addButton никогда не вызывается.

...