2011-07-18 82 views
0

即時通訊使用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> 

回答

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

確定。謝謝回答。在這裏,我想使用鍵盤箭頭鍵4個方向(上,下,左,右)滾動文本, –