Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.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 Flex:如何在导航到任何其他页面之前提示警报_Actionscript 3_Apache Flex_Flex3_Flex4.5 - Fatal编程技术网

Actionscript 3 Flex:如何在导航到任何其他页面之前提示警报

Actionscript 3 Flex:如何在导航到任何其他页面之前提示警报,actionscript-3,apache-flex,flex3,flex4.5,Actionscript 3,Apache Flex,Flex3,Flex4.5,如何在突出显示/导航到另一个面板/页面之前请求用户确认 我的屏幕上几乎没有面板。每个面板都有许多控件。我想用“确定”和“取消”按钮提示消息框或警报,并在用户单击另一个面板时进行确认 如果用户单击“确定”按钮,则导航到另一个面板/页面。 如果用户单击“取消”按钮,则删除警报并将焦点放在同一面板上 目前,我已经使用面板的focus_out event focusouthandlerevent:FocusEvent实现了这个功能。我点击了另一个面板中的按钮,现在我得到了警报,但当我在警报中点击OK时,

如何在突出显示/导航到另一个面板/页面之前请求用户确认

我的屏幕上几乎没有面板。每个面板都有许多控件。我想用“确定”和“取消”按钮提示消息框或警报,并在用户单击另一个面板时进行确认

如果用户单击“确定”按钮,则导航到另一个面板/页面。 如果用户单击“取消”按钮,则删除警报并将焦点放在同一面板上

目前,我已经使用面板的focus_out event focusouthandlerevent:FocusEvent实现了这个功能。我点击了另一个面板中的按钮,现在我得到了警报,但当我在警报中点击OK时,什么都没有发生按钮点击事件没有被触发


提前感谢

从它的声音中,您想根据单击警报上的哪个按钮作出反应

如果是这种情况,请在中使用内置的close处理程序

警报类有一个静态方法show,具有以下签名:

public static function show(text:String = "", title:String = "", flags:uint = 0x4, parent:Sprite = null, closeHandler:Function = null, iconClass:Class = null, defaultButtonFlag:uint = 0x4, moduleFactory:IFlexModuleFactory = null):Alert
通过在flags参数中使用pipe操作符添加两个标志

Alert.OK | | Alert.CANCEL然后在closeHandler参数中添加关闭处理程序,您可以检查单击了哪个按钮并做出相应的反应

大概是这样的:

警报: Alert.showAlert Title,是否继续?,Alert.OK | | Alert.CANCEL,this,onClose

onClose功能:

private function onClose(event:CloseEvent)
{
    if (eventObj.detail==Alert.OK) 
    {
      //proceed
    }
    else
    {
      //cancel operation
    }
}

根据您对James post的评论,我正在发布示例,不确定您是否正在寻找相同的示例:-希望下面的代码可以给您一些想法

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>

    <fx:Script>
        <![CDATA[
            import mx.controls.Alert;
            import mx.events.CloseEvent;

            private var storeNextFocusID:String = "first";
            private var storePreviousFocusID:String = "first";

            private function firstFocus():void
            {
                first.setFocus();   
                storePreviousFocusID = first.name;
            }

            private function showFirstTimeAlert(event:MouseEvent):void
            {
                if(event.currentTarget.name != storePreviousFocusID)
                {
                    Alert.show("Do you want to change Tab?","Alert",Alert.OK|Alert.CANCEL,null,closeHandler)
                    storeNextFocusID = event.currentTarget.name;
                }
            }

            private function closeHandler(event:CloseEvent):void
            {
                if(event.detail == Alert.OK)
                {
                    var focusCont:HGroup = mainContainer.getChildByName(storeNextFocusID) as HGroup;
                    focusCont.setFocus();
                    storePreviousFocusID = storeNextFocusID;
                } else
                {

                } 
            }
        ]]>
    </fx:Script>
    <s:VGroup id="mainContainer" x="50" y="50" width="400" height="300" creationComplete="firstFocus()">
        <s:HGroup  id="first" name="first" width="100%" height="100%" click="showFirstTimeAlert(event)">
            <mx:TabNavigator  width="100%" height="100%">
                <mx:VBox label="left">
                    <mx:Label text="labelPlacement = 'left'" />
                </mx:VBox>
                <mx:VBox label="right">
                    <mx:Label text="labelPlacement = 'right'" />
                </mx:VBox>
            </mx:TabNavigator>
            <s:Panel  width="100%" height="100%">
            </s:Panel>
        </s:HGroup>

        <s:HGroup  id="second" name="second" width="100%" height="100%"  click="showFirstTimeAlert(event)">
            <mx:TabNavigator width="100%" height="100%">
                <mx:VBox label="top">
                    <mx:Label text="labelPlacement = 'top'" />
                </mx:VBox>
                <mx:VBox label="bottom">
                    <mx:Label text="labelPlacement = 'bottom'" />
                </mx:VBox>
            </mx:TabNavigator>
            <s:Panel  width="100%" height="100%">
            </s:Panel>
        </s:HGroup>

    </s:VGroup>

</s:Application>

粘贴一些示例代码。。。您正在使用哪个父容器,例如:-ViewStack、tabnavigator…等等。最顶端的父元素是VGroup。它有HGroup、Tab navigator、Panels等元素。创建示例并粘贴。。。不仅仅是我们能帮忙…谢谢你的帮助。这里我们需要识别用户单击的另一个容器中的按钮/控件。但从您的示例中,我们可以确定在警报窗口上单击了哪个按钮“确定”或“取消”按钮