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