如何从 Flex 3 组件发送信息?

Posted

技术标签:

【中文标题】如何从 Flex 3 组件发送信息?【英文标题】:How to Send Info From a Flex 3 Component? 【发布时间】:2011-03-27 10:07:14 【问题描述】:

在从组件发送信息方面我需要一些帮助。我不确定如何进行。

我正在使用 Alex Uhlmann 的翻转卡类(失真效果)。我有一张有 3 个面的卡片。当用户单击按钮时,它会触发一个更改事件,并且在主应用程序中,更改事件会调用一个翻转卡片的函数flipTo。组件如下:

    <?xml version="1.0" encoding="utf-8"?>
    <mx:Panel 
        xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" 
        
        >

        <mx:Metadata>
            [Event("change", type="mx.events.Event")]
        </mx:Metadata>


        <mx:Script>
            <![CDATA[
                [Bindable]
                public var backCaption:String;
            ]]>
        </mx:Script>


            <mx:Text id="myAnswer" htmlText="backCaption"   />

        <mx:ControlBar    >
                <mx:Button 
                             x="20" y="400" 
                             label="Flip" 
                             click="dispatchEvent( new Event( Event.CHANGE ) );" />
        </mx:ControlBar>

    </mx:Panel>

主应用程序如下所示:

<mx:Canvas id="homeStack"   >
        <mx:ViewStack id="flipViewStack2"  x="200" y="150"  >

            <sides:FlipFace 
            id="frontFace2" 
            title="Newport"
            change="flipTo(frontFace2, backFace2, DistortionConstants.LEFT, DistortionConstants.RIGHT);" />     


            <sides:FlipReverse  
            id="backFace2" 
            title="Newport: Answer"  
            change="flipTo(backFace2, anotherFace2, DistortionConstants.LEFT, DistortionConstants.LEFT);" />    

            <sides:FlipAnotherSide  
            id="anotherFace2" 
            title="Other Stuff"  
            change="flipTo(anotherFace2, frontFace2, DistortionConstants.RIGHT, DistortionConstants.LEFT);"/>

        </mx:ViewStack>
    </mx:Canvas>

    <mx:Canvas id="OtherStack" >
        (more code)
    </mx:Canvas>

主应用程序中的flipTo函数有4个参数:起始边,结束边,然后是确定翻转方向的两个参数。

一切都很好。如果我按下按钮,我可以翻阅所有侧面。但是,我想添加一个组合框,以便用户可以直接翻转到他们想要的一侧,而不必循环浏览所有的一侧。 (这很重要,因为我计划添加更多边)。

在主应用程序中,请注意边的 id 中包含数字 2。例如,frontFace2。我有多组卡片,每组都有不同的编号,frontFace3、frontFace4 等。编号决定了从数据库中提取哪些数据。 (为简洁起见,我简化了代码)。

如何在组件中添加一个组合框,使卡片翻转到选定的一侧?

我需要自定义事件吗? (不幸的是,我对自定义事件一无所知)。有没有办法让组合框设置一个公共变量,然后以某种方式在主应用程序中访问该变量并使用组合框选择的一侧调用 FlipTo?其他可能性?

有什么建议吗?

谢谢。

-拉克西米迪

【问题讨论】:

【参考方案1】:

哦,是的,您将需要一个自定义事件。 自定义事件是您对 Event 类的继承,您可以在其上加载更多数据、参数、视图等。

在您的情况下,事情要简单一些,但您需要查看用户选择的“面孔”并翻转到它。

步骤 1.创建自定义事件(从事件继承) 2. 向名为 face 的事件类添加一个 var 3.当用户从combo中选择值时,用value填充face var并派发事件 4.在应用层监听事件,然后翻转到相关的人脸。

【讨论】:

嗨,Avi,感谢您的详细建议。对于我,这说得通。我想我必须尽快了解自定义事件!这将是一个挑战。谢谢。

以上是关于如何从 Flex 3 组件发送信息?的主要内容,如果未能解决你的问题,请参考以下文章

你如何从和 api 获取信息并发送 discord.py

如何将信息从 MapKit 注释发送到新的视图控制器

从 API 获取详细信息并根据条件设置状态 - 功能组件

如何在 COBOL 中从面板 (ISPF) 呼叫、发送和接收信息

如何向/从具有 VBA 宏计算的 Excel 文件发送和接收信息

易语言里的发送信息命令里的信息值,参数1,参数2分别是啥意思。代表啥,决定的是啥?