您的位置:首页 > 编程语言

Flash动画可能用到的简单AS3代码

2015-05-01 17:24 274 查看
在用Flash cs6开发软件时,动画很重要,但通常做起来很麻烦,有时候结合代码会有事半功倍的效果,以下是我暂时总结的常用ActionScript3.0的代码,需要时可以查阅,目前还不完整,以后随时补充,欢迎评论和指错。

:1.以下代码为在时间轴上使用,软件会自动导入所需要的包和类,所以略写import

2.以下代码多为简写,如果有问题,可以私信指出,我会详细解释

1.时间轴上的帧操作:

stop();

gotoAndStop(帧数);

gotoAndPlay(帧数);// 帧数最好改成帧名(帧可以取名字),比如 gotoAndStop(“认一认”);

nextFrame();//播放下一帧

this.addFrameScript(2, frameCode);//在主时间轴上一帧内写要在多帧内执行的代码;比如这是在第二帧内执行函数frameCode;

this.addFrameScript(2, null);//移除调用的函数

2.监听事件

公式:对象.addEventListener(事件类型.事件属性, 事件函数);

实例1:鼠标点击事件

click_mc.addEventListener(MouseEvent.CLICK, eventFuc);

function eventFunc(event:MouseEvent):void

{

trace(“Hello, World!”);//输出Hello, World!

}

注:鼠标事件参数有:CILCK, DOUBLE_CLICK, MOUSE_DOWN, MOUSE_UP, MOUSE_OVER, MOUSE_OUT, MOUSE_MOVE, MOUSE_WHEEL, ROLL_OVER, ROLL_OUT

鼠标事件属性有:buttonMode, delta, localX, localY, stageX, stageY relatedObject

实例2:键盘事件

stage.addEventListener(KeyboardEvent.KEY_DOWN, Move);

function Move(e)

{

switch (e.keyCode) //移动小球

{

case 37 :

ball.x -= 10;//左

break;

case 39 :

ball.x += 10;//右

break;

case 38 :

ball.y -= 10;//下

break;

case 40 :

ball.y += 10;//上

break;

default :

}

注:键盘事件的属性有: altKey, charCode, ctrlCode, keyCode, keyLocation, shiftKey

实例3:时间事件,(可以设置每隔多少秒或帧执行一段代码)

import flash.utils.Timer;

var time: int = 1000;

Timer = new Timer(time);

timeV.start();

timeV.addEventListener(TimerEvent.TIMER, ballM);

function ballM(e)

{

mc.x += 10; //mc的位置每隔1秒往右移10;

if (mc.x > 100)

{

timeV.stop();

timeV.removeEventListener(TimerEvent.TIMER, ballM);//移除监听

}

}

实例4:重复执行事件

stage.addEventListener(Event.ENTER_FRAME, Move);//重复执行Move

function Move(e)

{

e.target.x += 30;//一直向右移动

}

3.从外部加载声音

var pos:URLRequest=new URLRequest(“cnt”) //cnt为加载的文件名,文件必须和cnt在一个文件夹中

var sound:Sound=new Sound();

play_btn.addEventListener(MouseEvent.CLICK, Play);//点击play_btn后播放

function Play(e)

{

sound.load(pos);

sound.play();

}

4.动画有关代码

(1).遮罩,mc1.mask = mc2; //用mc2遮罩mc1

(2).用代码实现动画效果

var moveR:Tween = new Tween(mc1,”y”, Bounce.easeOut, 200, 300, 3, true);//碰撞返回多次

//var moveB: Tween = new Tween(mc1, “y”, Back.easeOut, 0, 400, 3, true);//碰撞返回一次

//(操作对象, X轴或Y轴, 移动方式, 移动起始位置, 移动终点, 时间或帧数,ture代表时间false代表帧数)

//var turnBR: Tween = new Tween(mc1, “scaleX”, Bounce.easeOut, 0, 1, 5, true);//大小伸展变换(X方向)

//var turnBR: Tween = new Tween(mc1, “scaleY”, Bounce.easeOut, 0, 1, 5, true);//大小Y方向变换

(3).鼠标在按钮上变手型

mc_btn.buttonMode = true;

(4).设置缩放

mc.scaleX = 2;//x方向的扩大2倍

mc.scaleY = 2;//y方向的扩大2倍

(5).影片剪辑的角度属性(可使其旋转)

mc.rotation = 60//60度

5.碰撞检测

(1)碰撞检测1(hitTestObject也可)

if ( mc1.hitTestPoint(mc2) )

{

score++;//如果mc1和mc2碰到,则score+1;

}

碰撞检测鼠标是否在mc实例中

if (this.mouseX, this.mouseY, ture)//ture,false指示是否使用形状检测

6.数学有关

(1)Math.random()//产生0-1的随机数

(2)其余数学表示和c语言一样,只是在前面加Math,比如Math.abs();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: