发生事件的类的返回值:ADDED_TO_STAGE

问题描述:

我有一个包含ADDED_TO_STAGE事件的类(它是一个不完整的对话框),我希望它返回一个值。这可能吗?或者我应该遵循什么样的方式?发生事件的类的返回值:ADDED_TO_STAGE

我的类:http://sudrap.org/paste/text/555684/

编辑:我将在类中创建一些按钮。我想要按钮的函数来返回一些值。我需要得到哪个按钮被点击。我想将这些值传递给主fla。

我可能需要该类返回对话框中指定的设置的数组。

+0

我没有看到你想要的任何地方返回一个值在你的代码中(DrawRectangle除外,但似乎不相关?)。你想什么时候回来?当你创建你的类的对象?请重新说明你的问题,使其更清楚。也没有理由把你的代码放在场外。 – DodgerThud

+0

想要返回一个值或传递一些参数?你想要返回什么类型? – Benny

+0

感谢您的答案。我编辑了这个问题。我没有把代码粘贴到这个问题上,因为这个网站由于代码过多而不允许。 – nikel

您可以通过创建自定义事件类来实现此目的,该类可以扩展Event并在其中传递所需的参数。

package{ 
    import flash.events.Event; 
    public class CustomEvent extends Event{ 

     public static const PASS_PARAMS:String = "passParams"; 

     // Your custom properties. 
     public var btnName:*; 

     public function CustomEvent(type:String, bName:*, bubbles:Boolean=false, cancelable:Boolean=false):void { 
      this.btnName = bName; 
      super(type, bubbles, cancelable); 
     } 

     override public function clone():Event{ 
      return new CustomEvent(type,btnName, bubbles, cancelable); 
     } 
    } 
    } 

和派遣你的customEvent按钮点击事件发生时

btn.addEventListener(MouseEvent.CLICK, onBtnClick); 
    private function onBtnClick(e:MouseEvent):void{ 
     dispatchEvent(new Event(CustomEvent.PASS_PARAMS, e.target.name)); 
    } 

,并在主类中添加一个侦听

this.addEventListener(CustomEvent.PASS_PARAMS, onProcessedEvent);  
    private function onProcessedEvent(e:CustomEvent):void{ 
     trace(e.btnName); 
    } 
+0

你好,我不确定把你的第二块代码放在哪里,但是当我把这个问题放到我的课上时,我得到错误:http://sudrap.org/paste/text/556048/ – nikel

+0

Show我已经尝试过的代码。 – Benny

+0

我很困惑。我把你的第一部分和第二部分代码移到了我的课上,第三部分移到了我的课上。 CustomEvent.as:http://sudrap.org/paste/text/556089/ main fla:http://sudrap.org/paste/text/556092/现在我得到错误1061. – nikel

一般来说你在那里有一个view。 用户可以与之交互的东西。

您应该在该类中定义您的view。显然你想传递一堆组合框和复选框给你的班级。 这是而不是要做到这一点。

组合框和复选框本身是视图。它们也被称为组件(因为它们提供了样式等附加功能)。 如果您的弹出窗口应该由组合框和复选框组成,那很好。 在你的班级PopupDialog中创建它们,但不要将它们传递给类。

你应该传递给你的班级的是model,这是用户应该能够修改的数据。

在Flash的组件领域,这是一个DataProvider对象。 看看在description of the .dataProvider property of the ComboBox类:

Gets or sets the data model of the list of items to be viewed. A data provider can be shared by multiple list-based components. Changes to the data provider are immediately available to all components that use it as a data source.

正如你可以看到modeldataProvider保存一些数据。 这是一个由所有视图共享的对象,可显示相同的数据。 一旦以任何方式操纵此数据,将通知所有其他views该更改。

我希望你能看到这是如何解决你的问题:无论你的view是否是一个弹出或没有。只要它在与应用程序的其余部分共享的model上运行,返回值的功能已经存在。

+0

加一个详细的答案。非常感谢。我会尝试它,并将其标记为接受,如果它的工作。 – nikel