Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 以编程方式设置PopUpMenuButton的值?_Actionscript 3_Apache Flex_Flex4_Flex4.6 - Fatal编程技术网

Actionscript 3 以编程方式设置PopUpMenuButton的值?

Actionscript 3 以编程方式设置PopUpMenuButton的值?,actionscript-3,apache-flex,flex4,flex4.6,Actionscript 3,Apache Flex,Flex4,Flex4.6,我需要在几个mxPopUpMenuButton组件中设置一些初始值。基于此,我将组件转换为菜单,并设置selectedIndex——但它不起作用 有什么建议吗?调用该函数时,似乎设置了selectedIndex,但PopUpMenuButton仍显示其数据提供程序中的第一项 由于我忽略的某些原因(可能只是一个bug),PopUpMenuButton控件的标签没有更新,这就是为什么您必须使用以下方法之一强制它这样做: 使用mx.core.mx_internal提交所选索引: 调度mx.e

我需要在几个mx
PopUpMenuButton
组件中设置一些初始值。基于此,我将组件转换为
菜单
,并设置
selectedIndex
——但它不起作用

有什么建议吗?调用该函数时,似乎设置了
selectedIndex
,但
PopUpMenuButton
仍显示其数据提供程序中的第一项




由于我忽略的某些原因(可能只是一个bug),
PopUpMenuButton
控件的标签没有更新,这就是为什么您必须使用以下方法之一强制它这样做:

  • 使用
    mx.core.mx_internal
    提交所选索引:
  • 调度
    mx.events.FlexEvent
    事件:
菜单(fontSizePopUp.popUp)。选择索引=3; 菜单(fontSizePopUp.popUp).dispatchEvent(新FlexEvent(FlexEvent.VALUE_COMMIT));
希望这能有所帮助。

只是一个猜测:如果您在
initFontSizeData()中指定了一个不同的、可区分的数据提供程序,该怎么办?可能该方法是在计算子标记的值之前执行的?最后一个想法是:如果您在mxml中创建dp,但在fx:declarations中创建dp,这会有区别吗,就像您问题中链接中的示例代码一样?
       private function initFontSizeData():void {
            Menu(fontSizePopUp.popUp).selectedIndex = 3; // 48 pt

            trace("index", Menu(fontSizePopUp.popUp).selectedIndex);
        }
    <mx:PopUpMenuButton id="fontSizePopUp" 
                        name="fontSizePopUp"
                        width="50" height="20"
                        labelField="label"
                        paddingLeft="-8"
                        itemClick="toolChangeHandler(event)"
                        open="canvasEnabled(false)"
                        close="canvasEnabled(true)"
                        chromeColor="#cccccc"
                        toolTip="Font Size"
                        styleName="toolPopUpStyle"
                        creationComplete="initFontSizeData()"
                        popUpStyleName="toolPopUpStyle">
        <mx:dataProvider>
            <fx:Array>
                <fx:Object fontPointSize = "18" label="18 pt"/>
                <fx:Object fontPointSize = "24" label="24 pt" />
                <fx:Object fontPointSize = "36" label="36 pt" />
                <fx:Object fontPointSize = "48" label="48 pt" />
                <fx:Object fontPointSize = "60" label="60 pt" />
                <fx:Object fontPointSize = "72" label="72 pt"/>
                <fx:Object fontPointSize = "96" label="96 pt" />
            </fx:Array>
        </mx:dataProvider>
    </mx:PopUpMenuButton>
Menu(fontSizePopUp.popUp).selectedIndex = 3; Menu(fontSizePopUp.popUp).mx_internal::commitSelectedIndex(3); var menu_event:MenuEvent = new MenuEvent(MenuEvent.ITEM_CLICK); menu_event.index = 3; Menu(fontSizePopUp.popUp).dispatchEvent(menu_event); Menu(fontSizePopUp.popUp).selectedIndex = 3; Menu(fontSizePopUp.popUp).dispatchEvent(new FlexEvent(FlexEvent.VALUE_COMMIT));