收藏本站 | 站点地图 | 繁體中文
沭阳乐园
您现在的位置: 沐阳乐园 >> 文章中心 >> 网络教程 >> 动画实例 >> 正文
Flash特效制作常用的源代码放送         
Flash特效制作常用的源代码放送
作者:佚名 文章来源:ZT 点击数:1520 更新时间:2010-12-28 3:17:32

*对象数组

比如要构建一个有很多属性的数组,简单的可以这样做:

var a:Array = new Array();

for (var i = 0; i<10; i++) {

a[i] = new Object();

a[i].x = 10;

a[i].y = 10*i;

a[i].name = "---";

a[i].id = i;

// 随便你给什么属性啊。

}

////先用局部变量存储对象会更好一点。

var a=new Array()

for(var i=0;i<10;i++){

var ta=new Object();

ta.x=10;

ta.y=10;

ta.name="n"+i;

a.push(ta);

}

////或者更简便一点的方法:

var a=new Array()

for(var i=0;i<10;i++){

a[i]={x:10,y:10,name:"n"+i}

}

*程序控制角色运动

下面这段代码控制 MovieClip mc 从 (50,50) 横向运动到(100,50) 停止,速度为 5 pixel:

mc._x = mc._y=50;

mc.onEnterFrame = function() {

_x += 5;

trace(_x);

if (_x == 100) {

delete (mc.onEnterFrame);

}

};

*精确计时

我们设定了时间为60 秒,然后通过setInterval 来定期(每1000milliseconds)触发一个函数 runTimer。function runTimer 用来计时,当时间到了以后,转去执行 outThere。function outThere 用来处理时间到了以后的动作,不要忘记 clearInterval(intervalID),停止计时。

var time:Number = 60;

var intervalID:Number;

intervalID = setInterval(runTimer, 1000);

function runTimer() {

time--;

trace(time);

if (time == 0) {

outThere();

}

}

function outThere() {

// blah blah blah

clearInterval(intervalID);

}

*找到目前最小的一个可用的深度 Depth(来自国外)

针对 Flash Player 6 的: 

availTopDepth = function () {

var allDepths = [];

for (var z in _root) {

if (_root[z] instanceof Button || _root[z] instanceof MovieClip || _root[z] instanceof TextField) {

allDepths.push(_root[z].getDepth());

}

}

if (allDepths.length != 0) {

sortAll = function (a, b) { if (ab) {return 1;} else {return 0;}};

allDepths.sort(sortAll);

return (parseInt(allDepths[allDepths.length-1])+1);

}

};

trace(_root.availTopDepth());

放置一个 MovieClip 在 Stage,再执行这段 Action 就会得到最近的一个可用深度。我们也可以用这个来创建绝对不会出问题的 MovieClip,比如:_root.createEmptyMovieClip("mc_name", availTopDepth());getNextHighestDepth() 以及 getInstanceAtDepth(depth)是 for player 7 的。

*鼠标消隐

鼠标消隐之后,右健弹出菜单,鼠标就又出现了,并且一直保留着~完整的解决方法是:在 左健抬起,右健第二次抬起,回车键抬起的时候再次消隐鼠标。完整的方法比较复杂,下面是一个简单的解决方法,可以解决绝大多数的问题:

onEnterFrame=function(){

if(Key.isDown(1)|| Key.isDown(Key.ENTER)){

Mouse.hide();

}

}

*我常用的一个加速度移动的代码

以下是引用片段:

//以下代码放到主场景第一帧

stop();

_global.a = 5;

//移动加速度,越大越慢

_global.click_x = 0;

//用来记录点击鼠标的位置

_global.click_y = 0;

_root.onMouseDown = function() {

_global.click_x = _root._xmouse;

_global.click_y = _root._ymouse;

//me是受控mc的instance name

me.onEnterFrame = function() {

if (Math.abs(_global.click_x-me._x)<2 && Math.abs(_global.click_y-me._y)<2) {

//如果已经基本移到了鼠标点过的位置就取消这个事件句柄的响应程序

delete (this.onEnterFrame);

return;

} else {

//控制移动

me._x += (_global.click_x-me._x)/_global.a;

me._y += (_global.click_y-me._y)/_global.a;

}

};

};

//////以下部分可选

//a_v是个可以输入的文本框,用来输入加速度,即可以自定义速度,方便调试

a_v.onChanged = function() {

if (a_v.text == "" || Number(a_v.text)>1000 || Number(a_v.text)<0) {

//default value

a_v.text = 5;

} else {

_global.a = Number(a_v.text) ? Number(a_v.text) : 5;

//trace(_global.a);

}

};

*随机输出1到100而不重复的语句: 

seq = new Array(100);

pArray = new Array(100);

function makeRandom() {

for (i=1; i<=100; i++) {

seq[i] = "A";

}

}

function mRandom() {

while (true) {

n = int(random(100))+1;

if (seq[n] == "A") {

seq[n] = "0";

break;

}

}

return (n);

}

function rArray() {

for (i=1; i<=100; i++) {

pArray[i] = mRandom();

trace(pArray[i]);

}

}

stop();

[1] [2] [3]  下一页

文章录入:晴天    责任编辑:音乐听听 
  • 上一篇文章:
  • 下一篇文章:
  • 【字体: 】 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    广告招商
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    ::发表评论::
     姓 名:
     评 分: 1分 2分 3分 4分 5分
     评论内容:
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用本网服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  • 广告招商
    文章 下载 图片 文字广告
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登陆

    备案/许可证编号: 闽ICP备16020960号-1号 域名创建于2016年8月
    版权: 沐阳乐园 All Rights Reserved 站长:张萍 邮箱:381415887@qq.com 联系QQ:联系站长