使用键盘事件滚动文本

时间:2011-07-18 10:27:04

标签: actionscript-3 events flex flex3

我正在使用flex 3开发一个简单的Mxml应用程序。我使用了简单的文本和组合框。 组合框包含左右上下的项目,当我单击组合框中的每个元素时,滚动文本将在选定的方向上滚动它工作正常。 我的问题是如何通过向上,向下,向右和向左按键盘箭头键来修改此应用程序。而不是使用组合框元素??

我的申请代码:

<?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 :(得分:0)

您可以订阅应用程序的键盘事件:

 <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)
  //...
}