正在阅读:Flash特效制作常用的源代码大放送Flash特效制作常用的源代码大放送

2007-04-03 10:16 出处:PConline 作者:佚名 责任编辑:chenzhenjia

  精确计时

  我们设定了时间为 60 秒,然后通过 setInterval 来定期(每1000milliseconds)触发一个函数 runTimer。

  function runTimer 用来计时,当时间到了以后,转去执行 outThere。

  function outThere 用来处理时间到了以后的动作,不要忘记 clearInterval(intervalID),停止计时。

  以下是引用片段:

  vartime:Number=60;

  varintervalID:Number;

  intervalID=setInterval(runTimer,1000);

  functionrunTimer(){

  time--;

  trace(time);

  if(time==0){

  outThere();

  }

  }

  functionoutThere(){

  //blahblahblah

  clearInterval(intervalID);

  }

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

  针对 Flash Player 6 的:

  以下是引用片段:

  availTopDepth=function(){

  varallDepths=[];

  for(varzin_root){

  if(_root[z]instanceofButton||_root[z]instanceofMovieClip||_root[z]instanceofTextField){

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

  }

  }

  if(allDepths.length!=0){

  sortAll=function(a,b){if(ab){return1;}else{return0;}};

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

  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){

  //defaultvalue

  a_v.text=5;

  }else{

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

  //trace(_global.a);

  }

  };

键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品