Я использую Flex 4.0 с темой Halo и пользовательским компонентом, источником которого я являюсь.Я хочу вызвать компонент с параметром, чтобы скрыть или показать некоторые элементы.Параметр является динамическим, то есть он устанавливается в методе после загрузки mxml.
Фрагмент:
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
xmlns:ns1="de.aggro.components.*"
width="100%"
height="100%"
initialize="init();"
>
<mx:Script>
<![CDATA[
[Bindable]
public var allowwindowmanipulation:Boolean = true;
internal function init():void {
allowwindowmanipulation = false;
}
]]>
</mx:Script>
<mx:states>
<mx:State name="st">
...
<ns1:CollapsableTitleWindow width="956" height="395" x="294" y="484" id="wnd" title="title" allowClose="{allowwindowmanipulation}">
</mx:State>
</mx:states>
</mx:Application>
Код CollapsableTitleWindow (фрагмент):
public class CollapsableTitleWindow extends Panel implements ICTWindow {
public var allowClose:Boolean = true;
function CollapsableTitleWindow(){
super();
addEventListener(FlexEvent.CREATION_COMPLETE, initializeHandler);
}
protected override function createChildren():void{
super.createChildren();
//Create the Buttons
closeButton = new Sprite();
if(allowClose==true){
titleBar.addChild(closeButton);
drawCloseButton(true);
}
}
}
Теперь, когда я запускаю этот код, значение, присвоенное конструктору CollapsableTitleWindow
, равно true
для переменной allowClose
.Поэтому, когда вызывается createChildren()
, кнопка рисуется.
Как я могу изменить поведение?Я не возражаю, если кнопка сначала будет прорисована, а затем будет удалена, если это необходимо, но я не знаю, как мне выполнить эту привязку значений параметров.
Когда я, например, изменяю title
для свойства {allowClose}
отображается логическое значение false
, хотя, вероятно, сначала передается true
.