设为首页 加入收藏  
首页 >>Flash>>正文

Flash 特效制作常用的源代码放送(1)

作者: 上传时间:2008-9-2 14:21:24 来源:

*对象数组


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

 

 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 的。

版权所有:天天网络工作室 晋ICP备06006449
手机:13103416120
Email:sxlwp@163.com QQ: 170229409