прокрутка текста с использованием события клавиатуры - PullRequest
0 голосов
/ 18 июля 2011

Я занимаюсь разработкой простого Mxml-приложения с использованием flex 3. Я использовал простой текст и поле со списком.Поле со списком содержит элементы, расположенные слева направо вверх и вниз, пока я щелкаю каждый элемент в поле со списком, прокручиваемый текст будет прокручиваться в выбранном направлении, он работает нормально.мой вопрос, как я могу изменить это приложение, нажимая клавиши со стрелками на клавиатуре вверх, вниз, вправо и влево.вместо использования элементов комбинированного списка ??

мой код приложения:

<?xml version="1.0" encoding="utf-8"?>

<mx:Script>
    <![CDATA[
        public var mytimer:Timer=new Timer(10);
        [Bindable]public var  arr:Array=new Array("upScroll","LeftScroll","right","down"); 

        private function initApp():void
        {
            mytimer.start();
            mytimer.addEventListener(TimerEvent.TIMER,scrollme);
        }


        private function scrollme(event:TimerEvent):void
        { 
            if(cmb.selectedLabel=="LeftScroll")
                {
                if(mytext.x==0)
                mytext.x=this.width-mytext.width;
                mytext.x--;
                }
            if(cmb.selectedLabel=="upScroll")
            {
                if(mytext.y==0)
                mytext.y=600;
                mytext.y--;
            }
            if(cmb.selectedLabel=="right")
            {
                if(mytext.x==this.width-mytext.width)
                mytext.x=0;
                mytext.x++;
            }
            if(cmb.selectedLabel=="down")
            {
                if(mytext.y==600)
                mytext.y=0;
                mytext.y++;
            }

        }

    ]]>
</mx:Script>

<mx:Text id="mytext" text="SCROLLING" fontSize="16" fontStyle="italic" fontWeight="bold"/>
<mx:ComboBox dataProvider="{arr}" prompt="Select" id="cmb" change="initApp()"/>


</mx:Application>

1 Ответ

0 голосов
/ 18 июля 2011

Вы можете подписаться на события клавиатуры приложения:

 <s:Application
  ...
  creationComplete="creactionComplete()">

function creactionComplete():void
{
 addEventListener(KeyboardEvent.KEY_DOWN, keyHitHandler);
}

private function keyHitHandler(event:KeyboardEvent):void
{
 if(event.keyCode == Keyboard.DOWN)
  //...
 if(event.keyCode == Keyboard.UP)
  //...
}
...