Hello,

My menubar is like the following:

----------------------------

In mxml file, *myFile.mxml*, I have:

<mx:Application
xmlns:mx=http://www.adobe.com/2006/mxmlcreationComplete="initCollections();"
>

<mx:Script>

<![CDATA[

import mx.collections.*;

[Bindable] public var menuBarCollection:XMLListCollection;

[Bindable] public var model:MyModelLocator = MyModelLocator.getInstance();

private var menubarXML:XMLList =

<>

<menuitem label="Menu1">

<menuitem label="MenuItem 1-A" data="1A" enabled={model.menuEnabledFlags
[0]}/>

<menuitem label="MenuItem 1-B" data="1B" enabled={model.menuEnabledFlags
[1]}/>

</menuitem>

<menuitem label="Menu2">

<menuitem label="MenuItem 2-A" data="2A"/>

<menuitem type="separator" />

<menuitem label="MenuItem 2-B" >

<menuitem label="SubMenuItem 3-A" data="3A"/>

<menuitem label="SubMenuItem 3-B" data="3B"/>

</menuitem>

</menuitem>

</>;

 // Event handler for the MenuBar control's itemClick event.

private function menuHandler(event:MenuEvent):void {

Alert.show("Label: " + [EMAIL PROTECTED] + "\n" +

"Data: " + [EMAIL PROTECTED], "Clicked menu item");

}

// Event handler to initialize the MenuBar control.

private function initCollections():void {

menuBarCollection = new XMLListCollection(menubarXML);

}

private function changeMenu():void {

menuEnabledFlags[0] = true;

menuEnabledFlags[1] = false;

}

]]>

</mx:Script>

<mx:MenuBar labelField="@label" itemClick="menuHandler(event);"
dataProvider="{menuBarCollection}" />

<mx:Button label="Change Enabled/Disabled Menu" click="changeMenu()"/>
</mx:Application>

---------------

In *MyModelLocator.as* file, I have:

public var menuEnabledFlags:Array = [false, true];

--------------------

Initially, when the application is loaded, "MenuItem 1-A" is disabled, and
"MenuItem 1-B" is enabled as the flags are defined in MyModelLocator.as

I want to dynamically change enable/disable flags for the item "MenuItem
1-A" and "MenuItem 1-B" in .as (Script) file. So I changed the value of
menuEnabledFlags as such menuEnabledFlags[0] = true; menuEnabledFlags[1] =
false;

I expected "MenuItem 1-A" will be enabled and "MenuItem 1-B" will be
disabled.

However, the change didn't reflect on the menubar.

How can I dynamically enable/disable "MenuItem 1-A" and "MenuItem 1-B"?

Please advise

Thanks!

Reply via email to