|
|
|||||
Регистрация: Nov 2006
Сообщений: 106
|
Проблемы с PopUpButton в mx:Tree.
Не могу понять: толи баг в SDK, толи у меня баг.
Есть mxml файлик <?xml version="1.0"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:XMLList id="_xmlListBlock"> <node label="Mail Box"> <node label="Marketing"/> </node> </mx:XMLList> <mx:Tree selectable="false" itemRenderer="com.asComponents.CustomTreeItemRenderer" dataProvider="{_xmlListBlock}" showRoot="true" labelField="@label" width="481" x="10" height="264" y="10"></mx:Tree> </mx:Application> package com.asComponents { import mx.controls.Alert; import mx.controls.treeClasses.*; public class CustomTreeItemRenderer extends TreeItemRenderer { private var _button:TreePopUpButton; public function CustomTreeItemRenderer() { super(); } override protected function createChildren():void { super.createChildren(); _button = new TreePopUpButton(); _button.x = 180; _button.y = -1; this.addChild(_button); } override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void { super.updateDisplayList(unscaledWidth, unscaledHeight); if(super.data) { if(TreeListData(super.listData).hasChildren) { _button.visible = false; } else { _button.visible = true; _button.Node = TreeListData(super.listData); } } } }// class }// package package com.asComponents { import mx.containers.VBox; import mx.controls.PopUpButton; import mx.controls.treeClasses.TreeListData; import mx.core.UIComponent; public class TreePopUpButton extends PopUpButton { private var _node:TreeListData; public function TreePopUpButton() { this.width = 110; this.height = 20; this.setStyle("cornerRadius", 0); this.openAlways = true; this.label = "Click"; } // getter for node data [Bindable] public function get Node():TreeListData { return _node; } // setter for node data public function set Node(value:TreeListData):void { if (!_node) { this._node = value; this.popUp = getCustomPopUp(XMLList(_node.item)); } } private function getCustomPopUp(list:XMLList):UIComponent { var result:VBox = new VBox(); result.setStyle("backgroundColor", "#E8E4E4"); result.width = this.width; result.height = 50; return result; } } } Когда в открытом ноде mx:Tree открыть PopUpButton, а затем закрыть эту же ноду, то popUp остается на сцене и, конечно же, все ломается. Как исправить этот глюк? Вот исхидничек Последний раз редактировалось Alexandor1984; 25.08.2008 в 15:24. |
Часовой пояс GMT +4, время: 19:45. |
|
« Предыдущая тема | Следующая тема » |
|
|