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

时间:2010-08-09 17:03:17

标签: flex components

我需要一些从组件发送信息的帮助。我不知道该怎么办。

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

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

        <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}"  width="100%" />

        <mx:ControlBar height="40"  width="100%" >
                <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等。这个数字决定从数据库中提取哪些数据。 (为简洁起见,我简化了代码。)

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

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

有什么建议吗?

谢谢。

-Laxmidi

1 个答案:

答案 0 :(得分:0)

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

在你的情况下,事情要简单一些,但你需要看看用户选择的“面子”并转向它。

步骤 1.创建自定义事件(从事件继承) 2.将var添加到名为face的事件类中 3.当用户从组合中选择值时,使用值填充face var并分派事件 4.听取应用程序级别的事件,然后翻转相关的面部。