Создание панелей во время выполнения не видит их - PullRequest
0 голосов
/ 27 сентября 2011

Моя проблема в том, что я пытаюсь сделать панель. Моя кнопка в Main.mxml, тогда как функции панели определены в panel_Create.mxml. код работает нормально. В panel_Create их функции для создания панелей во время выполнения. Проблема, с которой я сталкиваюсь, заключается в том, что когда я запускаю программу, она не показывает панели, но увеличивает значение n и после 8 щелчков выдает предупреждение. Пожалуйста, скажите мне, почему я не вижу панели. Код работает нормально, когда я помещаю весь код в Main.mxml

<fx:Script>
            <![CDATA[

                import Components.panel_Create;
                import mx.controls.Alert;
                import spark.components.Button
                public var adminPanel:panel_Create = new panel_Create();

                public var n:Number = 0;
                public function panel(event:MouseEvent): void
                {
                    if ( n < 8)
                    {
                        adminPanel.panel_Create(n);
                        n++;
                    }
                    else
                    Alert.show('More Panels Not Allowed', 'Alert Box', mx.controls.Alert.OK);          
                }
            ]]>
        </fx:Script>

        <s:Button id="add" includeIn="State1" x="398" y="10" label="Add Panel" click="panel(event)"/>
        <Components2:panel_Create includeIn="State1" x="10" y="66" width="737" height="599">
        </Components2:panel_Create>

    </s:Application>

Ответы [ 3 ]

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

Я считаю, что 8 панелей созданы и основаны на коде в одном из ваших комментариев. они добавлены в качестве дочерних элементов в adminPanel .

Проблема в том, что ваша панель администратораникогда не добавляется на сцену, поэтому не видно.

0 голосов
/ 27 сентября 2011

adminPanel не создается. ты должен сделать addElement(adminPanel) сам

if ( n < 8)
                    {
                        adminPanel.panel_Create(n);
                        addElement(adminPanel)
                        n++;
                    }
0 голосов
/ 27 сентября 2011

Попробуйте вместо этого:

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx">
    <fx:Script>
        <![CDATA[
            private var panels:Array = [];

            private function addPanel():void
            {
                if (panels.length < 8)
                {
                    var panel:Panel = new Panel();
                    panel.title = "Panel "+(panels.length + 1);
                    panels.push(panel);
                    addElement(panel);
                }else{
                    trace('More Panels Not Allowed');
                }                   
            }
        ]]>
    </fx:Script>
    <s:Button label="Add Panel" click="addPanel()"/>
</s:Application>
...