Actionscript I';“我不能做我的雪碧”;“翻转”;
首先,我要承认我是ActionScript的初学者,我正在编写自己的基本街机游戏(类似于旧街机游戏“Joust”)。虽然我已经能够编码精灵的运动,但当我按下向右箭头时,我希望使精灵朝另一个方向翻转。我想要么我可以试着绕着它的轴旋转对象(我已经试过多次了,证明很难),要么我可以试着用另一个精灵“替换”当前的精灵(正是朝相反方向的精灵)。我到处寻找用另一个精灵替换一个精灵的方法,但是没有用。当使用某个键码时,如何给这个精灵一个翻转效果?您使用的是as2/as3吗?可以将Y轴翻转180度 如果您使用as2,则需要通过actionScript或 添加镜像到显示列表的第二个位图Actionscript I';“我不能做我的雪碧”;“翻转”;,actionscript,sprite,Actionscript,Sprite,首先,我要承认我是ActionScript的初学者,我正在编写自己的基本街机游戏(类似于旧街机游戏“Joust”)。虽然我已经能够编码精灵的运动,但当我按下向右箭头时,我希望使精灵朝另一个方向翻转。我想要么我可以试着绕着它的轴旋转对象(我已经试过多次了,证明很难),要么我可以试着用另一个精灵“替换”当前的精灵(正是朝相反方向的精灵)。我到处寻找用另一个精灵替换一个精灵的方法,但是没有用。当使用某个键码时,如何给这个精灵一个翻转效果?您使用的是as2/as3吗?可以将Y轴翻转180度 如果您使用a
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressedDown);
function keyPressedDown(event:KeyboardEvent):void
{
var key:uint = event.keyCode;
switch (key)
{
case Keyboard.LEFT :
myMovieClip.rotaionY = 180; // MC will be mirrored
break;
case Keyboard.RIGHT :
myMovieClip.rotaionY = 0;
}
试试下面这个简单的代码。这里的“对象”是要翻转的电影唇/精灵
stage.addEventListener(KeyboardEvent.KEY_DOWN, OnKeyDown);
function OnKeyDown(event:KeyboardEvent):void
{
var uiKeyCode:uint = event.keyCode;
switch (uiKeyCode)
{
case Keyboard.LEFT :
object.scaleX = -1; //flip
break;
case Keyboard.RIGHT :
object.scaleX = 1; //unflip
break;
}
}
注意:如果您希望movieclip在其位置不发生任何移动的情况下翻转,则movieclip必须水平居中注册
告诉我这是否适用于您。rotationY更容易理解,但它将电影剪辑设置为“3d模式”(使用
.transform.matrix3D
而不是.transform.matrix
),它仅是actionscript 3.0,从flash player 10向上运行。使用2D转换矩阵稍微难一点,但不是简单翻转的火箭科学,它适用于actionscript 2.0,适用于大多数flash player版本(我想是flash player 6),对于初学者来说,比我的解决方案简单得多(+1)是的,乔治。但我想矩阵更快。不确定,但也不是真的。scaleX在幕后使用转换矩阵,因此只需使用setter即可。在as3中,getter有点慢(比setter慢),我的版本使用2(1获取矩阵,1检查a
的值)和一个条件。在这种情况下,您的解决方案更简单、更快;)