我正在使用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 :(得分: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)
//...
}