Flash Builder 4.6 |删除孩子| S:TileGroup

时间:2015-10-05 12:26:59

标签: actionscript-3 flash flex flash-builder removechild

我确信这是一个非常简单的东西,我很遗憾,但是我在删除一个位于s:Tilegroup中的VBox时遇到了问题。 我无法将其删除。对于测试,当我只添加到舞台(而不是s:TileGroup)时,我能够删除VBox。下面的代码显示了我正在玩的概念。

  • 我在舞台上有一个按钮以及一个空白的s:TileGroup开始
  • 当您单击该按钮时,它会动态地将一个VBox(保存一些文本)添加到s:TileGroup
  • 当创建VBox时,我还添加了一个事件监听器,这样当你点击vbox时,它就可以被删除了

<fx:Script>
    <![CDATA[
        protected function removeVBOX(event:Event):void{
            var t:DisplayObject = DisplayObject(event.target);
            t.parent.removeChild(t);
        }

        private function addVbox() : void {
            var vbox :VBox = new VBox();
            vbox.addEventListener(MouseEvent.CLICK,removeVBOX);

            vbox.width = 400;
            vbox.height = 500;
            vbox.horizontalScrollPolicy = "off";
            vbox.verticalScrollPolicy = "off";

            vbox.setStyle("backgroundAlpha", 0.39);
            vbox.setStyle("backgroundColor",  0x000000);
            vbox.setStyle("paddingLeft",  "15");
            vbox.setStyle("paddingTop",  "15");
            vbox.setStyle("paddingRight",  "15");
            vbox.setStyle("paddingBottom",  "15");

            var sText :RichText = new RichText();
            var sText2 :RichText = new RichText();
            var sText3 :RichText = new RichText();

            sText.text = "Hello 1";
            sText2.text = "Hello 2";
            sText3.text = "Hello 3";    

            //addElement(vbox);
            table.addElement(vbox);
            vbox.addElement(sText);
            vbox.addElement(sText2);
            vbox.addElement(sText3);

        }

    ]]>
</fx:Script>

<s:Button x="743" y="767" label="Button" click="addVbox()"/>
<s:TileGroup id="table" x="152" y="81" width="627" height="650" horizontalAlign="center" horizontalGap="13"
             orientation="columns" requestedColumnCount="1" verticalAlign="middle" verticalGap="13" >
</s:TileGroup>

1 个答案:

答案 0 :(得分:1)

查看您的代码,我发现您正在将您的VBox添加到TileGroup,如下所示: table.addElement(VBOX); 但是,您尝试使用removeChild()删除它: t.parent.removeChild(T); 向/从Spark容器添加/删除项目的正确方法是add / removeElement(): var t:IVisualElement = IVisualElement(event.target); t.parent.removeElement(T);