Flash AS3:单击 MC 2 时如何禁用 MC 1 的键盘控件?
Flash AS3: How to disable the keyboard controls of MC 1, when MC 2 is clicked?
我有两个不同的动画片段,它们可以用相同的键盘键移动。
如何在单击动画片段 2 时禁用动画片段 1 的键盘控件
反之亦然?
代码:
movieclip.addEventListener(MouseEvent.MOUSE_DOWN, onMcClick);
function onMcClick(e:MouseEvent):void
{
var target:MovieClip = e.currentTarget as MovieClip;
movieclip = target;
}
var speed:Number = 1.0;
var leftArrow:Boolean=false;
var rightArrow:Boolean=false;
var upArrow:Boolean=false;
var downArrow:Boolean=false;
addEventListener(Event.ENTER_FRAME, moveObject);
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyHit);
stage.addEventListener(KeyboardEvent.KEY_UP, noKeyHit);
function keyHit(e:KeyboardEvent):void
{
if(e.keyCode == Keyboard.LEFT) leftArrow = true;
if(e.keyCode == Keyboard.RIGHT) rightArrow = true;
if(e.keyCode == Keyboard.UP) upArrow = true;
if(e.keyCode == Keyboard.DOWN) downArrow = true;
}
function noKeyHit2(e:KeyboardEvent):void
{
if(e.keyCode == Keyboard.LEFT) leftArrow = false;
if(e.keyCode == Keyboard.RIGHT) rightArrow = false;
if(e.keyCode == Keyboard.UP) upArrow = false;
if(e.keyCode == Keyboard.DOWN) downArrow = false;
}
function moveObject(e:Event):void
{
if(leftArrow) movieclip.rotation -=0.75;
if(rightArrow) movieclip.rotation +=0.75;
if(upArrow) movieclip.scaleY +=0.01
if(downArrow) movieclip.scaleY -=0.01;
}
你可以做到这一点,只需将点击事件监听器添加到你的两个电影剪辑中,每次 select 被点击的一个作为 movieclip
(全局变量):
var movieclip:MovieClip = null;
mc1.addEventListener(MouseEvent.MOUSE_DOWN, onMcClick);
mc2.addEventListener(MouseEvent.MOUSE_DOWN, onMcClick);
function onMcClick(e:MouseEvent):void
{
movieclip = e.currentTarget as MovieClip;
}
就这些了。
希望能帮到你。
我有两个不同的动画片段,它们可以用相同的键盘键移动。
如何在单击动画片段 2 时禁用动画片段 1 的键盘控件 反之亦然?
代码:
movieclip.addEventListener(MouseEvent.MOUSE_DOWN, onMcClick);
function onMcClick(e:MouseEvent):void
{
var target:MovieClip = e.currentTarget as MovieClip;
movieclip = target;
}
var speed:Number = 1.0;
var leftArrow:Boolean=false;
var rightArrow:Boolean=false;
var upArrow:Boolean=false;
var downArrow:Boolean=false;
addEventListener(Event.ENTER_FRAME, moveObject);
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyHit);
stage.addEventListener(KeyboardEvent.KEY_UP, noKeyHit);
function keyHit(e:KeyboardEvent):void
{
if(e.keyCode == Keyboard.LEFT) leftArrow = true;
if(e.keyCode == Keyboard.RIGHT) rightArrow = true;
if(e.keyCode == Keyboard.UP) upArrow = true;
if(e.keyCode == Keyboard.DOWN) downArrow = true;
}
function noKeyHit2(e:KeyboardEvent):void
{
if(e.keyCode == Keyboard.LEFT) leftArrow = false;
if(e.keyCode == Keyboard.RIGHT) rightArrow = false;
if(e.keyCode == Keyboard.UP) upArrow = false;
if(e.keyCode == Keyboard.DOWN) downArrow = false;
}
function moveObject(e:Event):void
{
if(leftArrow) movieclip.rotation -=0.75;
if(rightArrow) movieclip.rotation +=0.75;
if(upArrow) movieclip.scaleY +=0.01
if(downArrow) movieclip.scaleY -=0.01;
}
你可以做到这一点,只需将点击事件监听器添加到你的两个电影剪辑中,每次 select 被点击的一个作为 movieclip
(全局变量):
var movieclip:MovieClip = null;
mc1.addEventListener(MouseEvent.MOUSE_DOWN, onMcClick);
mc2.addEventListener(MouseEvent.MOUSE_DOWN, onMcClick);
function onMcClick(e:MouseEvent):void
{
movieclip = e.currentTarget as MovieClip;
}
就这些了。
希望能帮到你。