Flex backkeypressedhandler не запускается с состояниями

Я разрабатываю мобильную программу с 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, если это ошибка, но, похоже, я ее не нашел.

Я надеюсь, что кто-то может мне помочь.

С уважением,

Тибо Хейлен


person Thibault    schedule 09.06.2011    source источник
comment
Согласно коду, который вы предоставили выше, похоже, что кнопка «Назад» никогда ничего не сделает, так как вы вызываете для нее preventDefault(). Это ожидаемое поведение.   -  person sshongru    schedule 26.06.2011


Ответы (1)


У меня были те же проблемы сегодня. Наконец я понял. В моих проблемах, если это первое представление, нажатие клавиши не работает, но для других представлений нажатие клавиши работает хорошо.

Надеюсь это поможет

person Wendy    schedule 08.07.2011