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

来源:互联网 发布:纳什均衡 知乎 编辑:程序博客网 时间:2024/04/29 08:51

在用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();

0 0