Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 如何设置精灵的动画?_Flash_Actionscript 3_Flux - Fatal编程技术网

Flash 如何设置精灵的动画?

Flash 如何设置精灵的动画?,flash,actionscript-3,flux,Flash,Actionscript 3,Flux,我正在使用Flex和AS3尝试创建一个游戏,我想知道如何轻松地制作动画。我更喜欢使用精灵表图像。我将去一个头和张贴代码(它真的很短),我到目前为止,有人可以看看它,告诉我最好的/最简单的/最简单的方法来添加动画支持?先谢谢你 <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" styleName = "plain" xmln

我正在使用Flex和AS3尝试创建一个游戏,我想知道如何轻松地制作动画。我更喜欢使用精灵表图像。我将去一个头和张贴代码(它真的很短),我到目前为止,有人可以看看它,告诉我最好的/最简单的/最简单的方法来添加动画支持?先谢谢你

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
  styleName = "plain"
    xmlns="cyanprime.*" 
    layout="absolute"
    width="600"
    height="400"
    frameRate="100"
    applicationComplete="initApp()">

    <mx:Script>
        <![CDATA[
            public function initApp():void
            {
                stage.addEventListener(KeyboardEvent.KEY_UP, keyUp); 
                stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown); 
                Mouse.hide();
                canvas.init();

            }

            private function keyDown(event:KeyboardEvent):void
            {
                canvas.KeyDownHandler(event);
            }

            private function keyUp(event:KeyboardEvent):void
            {
                canvas.KeyUpHandler(event);
            }
        ]]>
    </mx:Script>

  <MyGameCanvas id="canvas" width="100%" height="100%" themeColor="#ff0000" />
</mx:Application>

prime包{
导入mx.core.ui组件;
导入mx.controls.Image;
导入flash.events.*;
导入flash.utils。*;
导入flash.display.*;
导入flash.ui.Keyboard;
公共类MyGameCanvas扩展UIComponent{
[嵌入(source=“player.gif”)]
私有var playerImage:类;
私有变量playerSpeed:int=5;
私有变量键:Array=newarray();
私有变量player:DisplayObject=newplayerimage();
专用var定时器;
公共函数init():void{
//设置玩家
player.x=50;
玩家y=50;
addChild(玩家);
对于(变量i:int=0;i<300;i++)
{
键[i]=假;
}
ticker=新定时器(10);
ticker.addEventListener(TimerEvent.TIMER,onTick);
ticker.start();
}
公共函数控件():void{
if(键[键盘右])
player.x+=玩家速度;
if(键[键盘左])
player.x-=玩家速度;
if(键[Keyboard.UP])
player.y-=玩家速度;
如果(键[键盘下])
player.y+=玩家速度;
}
公共函数KeyDownHandler(事件:KeyboardEvent):void{
keys[event.keyCode]=true;
}
公共函数KeyUpHandler(事件:KeyboardEvent):void{
keys[event.keyCode]=false;
}
公共函数onTick(evt:TimerEvent):无效{
控件();
}       
}
}

您可以使用tween库,例如,这可能是最简单的方法。如果你想学习Actionscript中动画的细节,这本书是首屈一指的

package cyanprime{

    import mx.core.UIComponent;
    import mx.controls.Image;
    import flash.events.*;
    import flash.utils.*;
    import flash.display.*;
    import flash.ui.Keyboard;

    public class MyGameCanvas extends UIComponent{
        [Embed(source="player.gif")]
        private var playerImage:Class;
        private var playerSpeed:int = 5;
        private var keys:Array = new Array();
        private var player:DisplayObject = new playerImage();
        private var ticker:Timer;



        public function init():void{
            // set up player
            player.x = 50;
            player.y = 50;
            addChild(player);

            for(var i:int = 0; i < 300; i++)
            {
                keys[i] = false;
            }

            ticker = new Timer(10); 
            ticker.addEventListener(TimerEvent.TIMER, onTick);
            ticker.start();

        }

        public function controls():void{
            if(keys[Keyboard.RIGHT])
                player.x += playerSpeed;

            if(keys[Keyboard.LEFT])
                player.x -= playerSpeed;

            if(keys[Keyboard.UP])
                player.y -= playerSpeed;

            if(keys[Keyboard.DOWN])
                player.y += playerSpeed;
            }

        public function KeyDownHandler(event:KeyboardEvent):void{   
            keys[event.keyCode] = true;

        }

        public function KeyUpHandler(event:KeyboardEvent):void{
            keys[event.keyCode] = false;
        }

        public function onTick(evt:TimerEvent):void {
            controls();
        }       
    }
}