【问题标题】:flex: referencing calling object from popUpflex:从 popUp 引用调用对象
【发布时间】:2011-05-22 01:20:54
【问题描述】:

我有一种情况,我在屏幕上显示了一些分配了业务属性(价值、数量、质量等级)的图像。当我单击它们时,需要打开一个弹出窗口并允许我更改图像下项目的属性。我如何参考 a) 导致弹出窗口打开的对象 b) 存放在数组中的对象的属性 - 用于初始视图和更改

我为双击启用了图像,如下所示

newImage.doubleClickEnabled=true;
newImage.addEventListener(MouseEvent.DOUBLE_CLICK,createModifyPopUp);

我目前调用弹窗如下

private function createModifyPopUp(evt:MouseEvent):void{
var mywin1:Modify=PopUpManager.createPopUp(this,Modify,true) as Modify;
PopUpManager.centerPopUp(mywin1);
}

我似乎没有将事件传递到弹出窗口中 - 有没有一种方法可以根据在原始应用程序中单击的图像来构建和捕获修改中的信息。

【问题讨论】:

    标签: apache-flex popup


    【解决方案1】:

    只需使用 PopUpManager.addPopup 代替 PopUpManager.createPopUp

    您的示例应如下所示:

    //define properties in the Modify class (Modify.as3 or Modify.mxml)
    public var someData: Array;
    public var eventTarget: Object;
    
    
    // listener
    private function createModifyPopUp(evt:MouseEvent):void{
       var modify: Modify = new Modify();
       // pass parameters to the instance of Modify class
       modify.someData = arr;
       modify.eventTarget = evt.target;
    
       // show popup
       PopUpManager.addPopUp(modify, this, true);
       PopUpManager.centerPopUp(modify);
    }
    

    【讨论】:

    • 感谢 aav- 只是为了更好地理解这一点。如果我有一个包含属性的名为“arr”的数组,我知道我应该将 modify.somedata 设置为 arr;在“修改”mxml 类中,我会将值更改为 somedata。此外,evt.currentTarget 将在修改类中工作。这是正确的吗?
    • 1.当然,您应该在 Modify 类 2 中定义 someData 属性。 evt.currentTarget 在 Modify 类中将不可见,除非您将其传递到那里。我用 bette 更新了我的答案
    • 嗨:好像没有创建弹出对象
    • 嗨:好像没有创建弹出对象:在运行和启动 createModifyPopUp 时,出现运行时错误错误 #1009:无法访问空对象引用的属性或方法。在 mx.managers::PopUpManagerImpl/centerPopUp()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\PopUpManagerImpl.as:491] 在 mx.managers::PopUpManager$/centerPopUp( )[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\PopUpManager.as:213] at - mywin1 没有被创建 - 这个出现了使用 addPopUp vs create-知道为什么吗?
    • 弹出窗口由您的代码创建(... = new Modify(); )。我认为问题在于 addPopUp 没有返回任何东西(我在最初的例子中的错)。但这不需要,因为您在弹出窗口中有参考。看看更新后的例子。
    猜你喜欢
    • 2013-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多