无法使用FlashBuilder中的事件从子弹出窗口检索main中的属性

用户名

我正在使用一个组件来显示弹出窗口,并使用一个事件侦听器来获取弹出窗口属性并删除父窗口中的弹出窗口。但是,侦听器中的poup var弹出var为nul,因此会引发错误。

任何建议将不胜感激。

约翰


这是我的EditStudentLogInForm.mxml组件。

<?xml version="1.0"?>
<!-- containers\layouts\myComponents\MyLoginForm.mxml -->
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml"
            creationComplete="handleCreationComplete();">
    <mx:Script>
        <![CDATA[
            import mx.managers.PopUpManager;
            [Bindable] public var studentLoginEmail:String;
        ]]>
    </mx:Script>

    <mx:Form width="333">
        <mx:FormItem label="Email">
            <mx:TextInput id="username" width="207"/>
        </mx:FormItem> 
        <mx:FormItem label="Password">
            <mx:TextInput id="password" 
                      width="205"/>
        </mx:FormItem> 
    </mx:Form>
    <mx:HBox> 
        <mx:Button id="okButton" label="OK"/> 
        <mx:Button id="cancelButton" label="Cancel" />
    </mx:HBox> 
 </mx:TitleWindow>

这是父母...

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
            xmlns:s="library://ns.adobe.com/flex/spark">    
    <mx:Script>
        <![CDATA[
            import flash.events.Event;
            import mx.managers.PopUpManager;
            import mx.core.IFlexDisplayObject;
            import EditStudentLogInForm;
            import mx.containers.TitleWindow;

            public var helpWindow:EditStudentLogInForm;

            public function showLogin():void {
                    // Create the TitleWindow container.
                var helpWindow:EditStudentLogInForm = EditStudentLogInForm(
                    PopUpManager.createPopUp(this, EditStudentLogInForm, true));

                helpWindow.username.text = "[email protected]";
                helpWindow["cancelButton"].addEventListener("click", removeMe);   
                helpWindow["okButton"].addEventListener("click", submitData); 
            }

            // OK button click event listener.
            private function submitData(event:Event):void {
                testText.text = helpWindow.username.text;
                                //*********helpWindow is nul*******
                removeMe(event);
            }

            // Cancel button click event listener.
            private function removeMe(event:Event):void {
                PopUpManager.removePopUp(helpWindow);
            }                           
        ]]>
    </mx:Script>    
</mx:Application>
RIAstar

当你做

public function showLogin():void {
    var helpWindow:EditStudentLogInForm = ...
}

您在方法helpWindow范围内声明并实例化了一个新变量showLogin这意味着您不能在showLogin方法外部访问分配给该本地范围变量的实例

您确实helpWindow在类范围内声明了另一个变量(在这种情况下,您的类是主应用程序),但是您永远不会为其分配任何实例(因为您正在将该弹出窗口实例分配给helpWindow仅存在于中变量)showLogin

因此,当您尝试通过另一种方法访问此变量时,其值为null
解决方案非常简单:只需将弹出窗口实例分配给类作用域变量:

public function showLogin():void {
    helpWindow = EditStudentLogInForm(
        PopUpManager.createPopUp(this, EditStudentLogInForm, true)
    );
    ...
}

附带一提:如果您在类上且在方法内部具有相同名称的变量,则始终在局部作用域内优先使用:

public var s:String = 'class';

public function myMethod():void {
    var s:String = 'method';
    trace(s);      // prints method
    trace(this.s); // prints class
}

public function myOtherMethod():void {
    trace(s);      // prints class
    trace(this.s); // prints class
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用jQuery从子弹出窗口动态填充父窗口上的选择选项

在JavaScript中捕获弹出窗口的关闭事件

AngularJS:从子控制器中隐藏弹出窗口(弹出内容)

无法在aspx中添加模式弹出窗口

无法关闭 kivy 中的弹出窗口

WPF中的弹出窗口无法打开

如何在离子弹出窗口中使用If条件

在click事件中检索div的value属性

如何从子弹中获取WooCommerce产品ID?

点击事件中的自举弹出窗口未显示

如何在 Elementor 中向弹出窗口添加单击事件?

使用python关闭Selenium中的弹出窗口

在Ionic 2中使用弹出窗口

从 DNN 中的弹出窗口显示弹出窗口

电子中的弹出窗口

无法在 Visual Studio 中处理窗口事件

无法使用 MailChimp 弹出窗口

无法使用Selenium在Chrome浏览器中的权限弹出窗口中单击“允许”或“阻止”?

在控制器中无法使用ng-repeat在弹出窗口中显示内容?

当子弹出窗口打开时,JPopupMenu关闭

更改离子弹出窗口的宽度

离子弹出窗口未显示

无法通过 NetworkX 中的属性检索节点

无法从带有弹出窗口/框架的网页中抓取数据

ToolBarOverflow面板中的弹出窗口无法正常工作

无法在Selenium中的模式弹出窗口上找到元素

有什么办法可以在“允许使用麦克风弹出窗口”(chrome最新)中获取“允许”按钮单击事件?

窗口关闭(X)按钮事件创建问题,并在Extjs 4.2中打开弹出窗口

仅从子文档中检索某些字段