Почему я не могу добавить панель управления на панель? - PullRequest
0 голосов
/ 07 марта 2012
var panel:Panel = new Panel();
panel.title = source.displayValue + "-" + data.displayValue;
panel.percentWidth = 100;

var upButton:Button = new Button();
//  upButton.setStyle("icon", upIcon);

upButton.label="test";


var downButton:Button = new Button();
var closeButton:Button = new Button();

var controlBar:ControlBar = new ControlBar();
controlBar.addChild(upButton);
controlBar.addChild(downButton);
controlBar.addChild(closeButton);

controlBar.height = 50;

//panel.addChild(chart);
panel.addChild(controlBar);

У меня есть код выше, просматривая все примеры, которые я могу найти в Интернете. Я все сделал правильно, но у меня все еще нет панели управления

при проверке количества дочерних элементов каждого элемента.имеет в eclipse, свойство панели управления numChildren увеличивается, но панель не так, как будто она не добавляется.Пожалуйста, помогите: |

Ответы [ 2 ]

1 голос
/ 07 марта 2012

Flex 3 версия моего предыдущего ответа:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" minWidth="955" minHeight="600">

    <mx:Script>
        <![CDATA[
            import mx.containers.ControlBar;
            import mx.containers.Panel;
            import mx.containers.VBox;
            import mx.controls.Label;

            protected function button_clickHandler(event:MouseEvent):void
            {
                var panel:Panel = new Panel();
                panel.title = "Hello Panel";
                panel.percentWidth = 100;

                var upButton:Button = new Button();
                upButton.label="upButton";
                var downButton:Button = new Button();
                downButton.label="downButton";
                var closeButton:Button = new Button();
                closeButton.label="closeButton";

                var controlBar:ControlBar = new ControlBar();
                controlBar.addChild(upButton);
                controlBar.addChild(downButton);
                controlBar.addChild(closeButton);

                var vBox:VBox = new VBox();
                vBox.percentWidth = 100;
                vBox.height = 100;
                var lbl:Label = new Label();
                lbl.text = "This is content";
                vBox.addChild(lbl);
                panel.addChild(vBox);

                panel.addChild(controlBar);
                addChild(panel);
            }
        ]]>
    </mx:Script>

    <mx:Button top="" label="createPanel" click="button_clickHandler(event)" />

</mx:Application>
1 голос
/ 07 марта 2012

Если вы используете flex 4, вы можете просто указать свойство controlBarContent на панели:

<?xml version="1.0" encoding="utf-8"?>
<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" minWidth="955" minHeight="600">

    <fx:Script>
        <![CDATA[
            import spark.components.Panel;

            protected function button_clickHandler(event:MouseEvent):void
            {
                var panel:Panel = new Panel();
                panel.title = "Hello Panel";
                panel.percentWidth = 100;

                var upButton:Button = new Button();
                upButton.label="upButton";
                var downButton:Button = new Button();
                downButton.label="downButton";
                var closeButton:Button = new Button();
                closeButton.label="closeButton";

                panel.controlBarContent = [upButton, downButton, closeButton];
                addElement(panel);
            }
        ]]>
    </fx:Script>

    <s:Button label="createPanel" click="button_clickHandler(event)" />
</s:Application>

Надеюсь, это поможет.

...