正在载入……

Attention, Zin 的交互设计之路。

User interface, user experience and interactive design.

« 我的个人小函数-Javascript篇经典英文爱情名句-圣诞节要到了 »

我的个人小函数-flash actionscript篇

这里的常用flash actionscript函数片段部分是有关联的,有的只是代码片断,请自行修改测试,不要直接拷贝使用。

Tween类常用效果

//引入Tween类
import mx.transitions.Tween;
import mx.transitions.easing.*;
//引入模糊滤镜
import flash.filters.BlurFilter;
//各种常用函数
function moveXE(target:MovieClip, tx:Number, t:Number):Void {
  myTweenXE = new Tween(target, "_x", mx.transitions.easing.Elastic.easeOut, target._x, tx, t, true);
}
function moveXS(target:MovieClip, tx:Number, t:Number):Void {
  myTweenXS = new Tween(target, "_x", mx.transitions.easing.Strong.easeOut, target._x, tx, t, true);
}
function moveYS(target:MovieClip, ty:Number, t:Number):Void {
  myTweenYS = new Tween(target, "_y", mx.transitions.easing.Strong.easeOut, target._y, ty, t, true);
}
function widthN(target:MovieClip, tw:Number, t:Number):Void {
  myTweenWN = new Tween(target, "_width", mx.transitions.easing.None.easeOut, target._width, tw, t, true);
}
function widthS(target:MovieClip, tw:Number, t:Number):Void {
  myTweenWS = new Tween(target, "_width", mx.transitions.easing.Strong.easeOut, target._width, tw, t, true);
}
function widthE(target:MovieClip, tw:Number, t:Number):Void {
  myTweenWS = new Tween(target, "_width", mx.transitions.easing.Elastic.easeOut, target._width, tw, t, true);
}
function alphaS(target:MovieClip, ta:Number, t:Number):Void {
  myTweenAS = new Tween(target, "_alpha", mx.transitions.easing.Strong.easeOut, target._alpha, ta, t, true);
}
function zoomE(mc:MovieClip, tsc:Number, t:Number):Void {
  var firstsc:Number = mc._xscale;
  myZoomTween = new Tween(mc, "_xscale", mx.transitions.easing.Elastic.easeOut, firstsc, tsc, t, true);
  myZoomTween = new Tween(mc, "_yscale", mx.transitions.easing.Elastic.easeOut, firstsc, tsc, t, true);
  //return true;
}
function zoomS(mc:MovieClip, tsc:Number, t:Number):Void {
  var firstsc:Number = mc._xscale;
  myZoomTween = new Tween(mc, "_xscale", mx.transitions.easing.Strong.easeOut, firstsc, tsc, t, true);
  myZoomTween = new Tween(mc, "_yscale", mx.transitions.easing.Strong.easeOut, firstsc, tsc, t, true);
  //return true;
}
function blurS(mc:MovieClip, sb:Number, eb:Number, t:Number):Void {
  var myBlurT:Tween = new Tween(mc, "blur", mx.transitions.easing.Strong.easeOut, sb, eb, t, true);
  var target_mc:MovieClip = mc;
  myBlurT.onMotionChanged = function() {
    target_mc.filters = [new BlurFilter(target_mc.blur, target_mc.blur, 1)];
  };
}
function traceTime(t:Number):Void {
  mtt = new Tween(this, "n", mx.transitions.easing.None.easeOut, 0, 100, t, true);
}
function zoomEaseIn(base:MovieClip, str:String, n:Number, s:Number, zs:Number, ze:Number, zt:Number, at:Number):Void {
  for (i=1; i<=n; i++) {
    base[str+i]._alpha = 0;
    base[str+i]._xscale = this[str+i]._yscale=zs;
  }
  var i = 0;
  var s:Number = s;
  var ii:Number;
  base.onEnterFrame = function() {
    i++;
    ii = i/s;
    if (Math.round(ii) == ii) {
      zoomE(this[str+ii], ze, zt);
      alphaS(this[str+ii], 100, at);
    }
    if (ii>n) {
      delete this.onEnterFrame;
    }
  };
}
function alphaEaseIn(base:MovieClip, str:String, ns:Number, n:Number, s:Number, at:Number):Void {
  for (i=ns; i<=n; i++) {
    base[str+i]._alpha = 0;
  }
  var i = ns*s;
  var s:Number = s;
  var ii:Number;
  base.onEnterFrame = function() {
    ii = i/s;
    if (Math.round(ii) == ii) {
      alphaS(this[str+ii], 100, at);
    }
    if (ii>n) {
      delete this.onEnterFrame;
    }
    i++;
  };
}
function blurEaseIn(base:MovieClip, str:String, ns:Number, n:Number, s:Number, at:Number, bs:Number):Void {
  for (i=ns; i<=n; i++) {
    base[str+i]._alpha = 0;
  }
  var i = ns*s;
  var s:Number = s;
  var ii:Number;
  base.onEnterFrame = function() {
    ii = i/s;
    if (Math.round(ii) == ii) {
      alphaS(this[str+ii], 100, at);
      blurS(this[str+ii], bs, 0, at);
    }
    if (ii>n) {
      delete this.onEnterFrame;
    }
    i++;
  };
}


使用MovieClipLoader载入图片

//载入动画到实例名为detail的movieclip中,该mc种loader为加载mc,loading为载入动画
var mcl:MovieClipLoader = new MovieClipLoader();
var ml:Object = new Object();
ml.onLoadComplete = function(target:MovieClip) {
  _root.alphaS(detail.loading, 0, 1);
  _root.alphaS(detail.loader, 100, 1);
};
mcl.addListener(ml);
function loadPic(picURL) {
  _root.alphaS(detail.loading, 100, .3);
  _root.alphaS(detail.loader, 0, .3);
  _root.myTweenAS.onMotionFinished = function() {
    mcl.loadClip(picURL, detail.loader);
  };
  //detail.loader.loadMovie(picURL);
}


Stage,100%窗口时的对齐、居中等

/* stage */
var dw:Number = 1250;
var dh:Number = 842;
var crh:Number = 0;
var stageListener:Object = new Object();
stageListener.onResize = stageResize;
Stage.addListener(stageListener);
stageResize();
function stageResize() {
  sw = Stage.width;
  sh = Stage.height;
  pageNum == 0 ? setPosition(_cont, Math.round(sw/2-dw/2), Math.round(sh/2-dh/2-crh)) : setPosition(_cont, Math.round(sw/2-dw/2), 0);
  setPosition(_bg, Math.round(sw/2-dw/2), Math.round(sh/2-dh/2-crh));
  setPosition(_nav, Math.round(sw/2-dw/2), 0);
  setPosition(_root.maskMC, Math.round(sw/2-dw/2), 0);
}
function setPosition(target:MovieClip, tx:Number, ty:Number):Void {
  moveXS(target, tx, 0.5);
  moveYS(target, ty, 0.5);
}

注:该函数不可以直接应用,因为这是我的代码片断,你可以自行修改

水平随机分布图片序列按钮

function buildPics() {
  //build pic btns
  //图片按钮实例名为1,2,3共pn个
  var pn:Number = 7;
  //透明渐变时间
  var at:Number = 1.5;
  //移动时间
  var mt:Number = 2;
  //出现延迟 2帧
  var s:Number = 2;
  //计数开始
  var j:Number = 0;
  //重复计数,计算延迟
  var jj:Number;
  //图片宽度
  var pw:Number = 97;
  //左对齐
  var fx:Number = 525;
  //右对齐
  var fy:Number = 424;
  for (i=0; i<pn; i++) {
    this[i]._alpha = 0;
    this[i].tx = pw*i+fx;
    this[i]._x = fx+_root.randRange(-pw, pw*pn);
    this[i]._y = fy;
    this[i].onRelease = function() {
      disp(this._name);
    };
  }
  onEnterFrame = function () {
    jj = j/s;
    if (jj == Math.round(jj)) {
      _root.alphaS(this[jj], 100, at);
      _root.moveXS(this[jj], this[jj].tx, mt);
    }
    if (jj>pn-1) {
      delete this.onEnterFrame;
      _root.alphaS(picShadow, 100, 1);
      reEnterFrame();
    }
    j++;
  };
}
function reEnterFrame() {
  //restart onenterframe event
}


矩阵随机分布图片序列按钮

function buildPics() {
  //build pic btns
  var at:Number = 1.5;
  var mt:Number = 1;
  var s:Number = 2;
  var j:Number = 0;
  var jj:Number;
  var pw:Number = 225;
  var ph:Number = 102;
  var fx:Number = 547;
  var fy:Number = 474;
  var i:Number = 0;
  var pidArr:Array = new Array();
  for (c=0; c<3; c++) {
    for (d=0; d<3; d++) {
      pidArr[i] = i;
      this[i]._alpha = 0;
      this[i].tx = pw*d+fx;
      this[i].ty = ph*c+fy;
      this[i]._xscale = this[i]._yscale=30;
      this[i]._x = 772;
      this[i]._y = 576;
      this[i].onRelease = function() {
        disp(this._name);
      };
      i++;
    }
  }
  pidArr = _root.randArr(pidArr);
  onEnterFrame = function () {
    jj = j/s;
    if (jj == Math.round(jj)) {
      _root.alphaS(this[pidArr[jj]], 100, at);
      _root.zoomS(this[pidArr[jj]], 100, at);
      _root.moveXS(this[pidArr[jj]], this[pidArr[jj]].tx, mt);
      _root.moveYS(this[pidArr[jj]], this[pidArr[jj]].ty, mt);
    }
    if (jj>pn-1) {
      delete this.onEnterFrame;
      _root.alphaS(picShadow, 100, 1);
      reEnterFrame();
    }
    j++;
  };
}
function reEnterFrame() {
  //restart onenterframe event
}


注释中有英文,那是我工作时加的,现在增加的中文注释为了方便博客的浏览者使用。
转载请注明出处,谢谢!

欢迎发表看法:

您的讨论更有价值!

控制面板

<< 2008-12 >>

Sun

Mon

Tue

Wed

Thu

Fri

Sat

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

最近留言