Flex backkeypressedhandler无法启动状态

时间:2011-06-09 08:24:42

标签: flex air flash-builder flex4.5

我正在开发一个使用Flex 4.5 SDK的移动程序,这是我的学校论文。我的程序中有一个我无法解决的错误。

我有一个视图,我有2个州。当我从状态改变时,我的程序不再听backKey事件了。 我已经尝试过了:

backKeyPressed.mystate = "backKeyPressed(event)"

但这没有用。 我做了一个小程序给你看:

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" title="Home"
    initialize="init()"
    backKeyPressed="view1_backKeyPressedHandler(event)">

<fx:Script>
    <![CDATA[
        import mx.collections.ArrayCollection;
        import mx.events.FlexEvent;

        [Bindable]
        private var m_list:ArrayCollection = new ArrayCollection();

        private function init():void
        {

        }

        protected function button1_clickHandler(event:MouseEvent):void
        {
            currentState = 'state2';

        }

        protected function button2_clickHandler(event:MouseEvent):void
        {
            currentState = 'state1';

        }

        protected function view1_backKeyPressedHandler(event:FlexEvent):void
        {
            event.preventDefault();

        }

    ]]>
</fx:Script>
<fx:Declarations>
    <s:State name="state1"/>
    <s:State name="state2"/>
</fx:Declarations>
<s:Group id="stateOneGroup" includeIn="state1">
    <s:Button x="30" y="112" label="To State 2"
              click="button1_clickHandler(event)"/>
    <s:Label x="72" y="216" text="State1"/>
</s:Group>

<s:Group id="stateTwoGroup" includeIn="state2">
    <s:Button x="267" y="112" label="To State 1"
              click="button2_clickHandler(event)"/>
    <s:Label x="303" y="216" text="State2"/>
</s:Group>

 </s:View>

我还搜索了adobe,如果它是一个bug,但我似乎找不到它。

我希望有人可以帮助我。

亲切的问候,

Thibault Heylen

1 个答案:

答案 0 :(得分:1)

今天我遇到了同样的问题。最后我明白了。在我的问题中,如果它是第一个视图,则backkeypressed不起作用,但对于其他视图,backkeypressed效果很好。

希望这有帮助