【发布时间】:2009-02-17 13:01:01
【问题描述】:
我有这个 AS2 代码,当我使用 TweenLite 翻转 mc 时,它会执行一些简单的动画。
感觉自己有很多重复的代码。
有没有办法只指定这样的函数
boxLink(a);
还有剩下的代码,目标影片剪辑的路径在函数中而不是在函数变量中?
如何使这段代码尽可能短?
是否可以将变量:String 转换为变量:MovieClip? 在这个例子中我会怎么做?
import gs.*;
import gs.easing.*;
function imageAlpha(mc_target:MovieClip) {
mc_target.onRollOver = function() {
TweenLite.to(mc_target,1,{_alpha:100, ease:Back.easeOut});
};
mc_target.onRollOut = function() {
TweenLite.to(mc_target,1,{_alpha:60, ease:Back.easeOut});
};
}
function boxLink(mc_function:MovieClip, mc_target:MovieClip, mc_image:MovieClip, linkURL:String) {
mc_function.onRollOver = function() {
TweenLite.to(mc_target,0.5,{_xscale:150, _yscale:150, ease:Back.easeOut});
TweenLite.to(mc_image,1,{_alpha:100, ease:Back.easeOut});
};
mc_function.onRollOut = function() {
TweenLite.to(mc_target,0.5,{_xscale:100, _yscale:100, ease:Back.easeOut});
TweenLite.to(mc_image,1,{_alpha:60, ease:Back.easeOut});
};
mc_function.onRelease = function() {
if (linkURL) {
getURL(linkURL);
}
};
}
imageAlpha(a_box.image);
imageAlpha(b_box.image);
imageAlpha(c_box.image);
imageAlpha(d_box.image);
boxLink(a_box.link1,a_box.arrow1,a_box.image,'http://www.google.no');
boxLink(a_box.link2,a_box.arrow2,a_box.image,'http://www.google.no');
boxLink(a_box.link3,a_box.arrow3,a_box.image,'http://www.google.no');
boxLink(b_box.link1,b_box.arrow1,b_box.image,'http://www.google.no');
boxLink(b_box.link2,b_box.arrow2,b_box.image,'http://www.google.no');
boxLink(b_box.link3,b_box.arrow3,b_box.image,'http://www.google.no');
boxLink(c_box.link1,c_box.arrow1,c_box.image,'http://www.google.no');
boxLink(c_box.link2,c_box.arrow2,c_box.image,'http://www.google.no');
boxLink(c_box.link3,c_box.arrow3,c_box.image);
boxLink(d_box.link1,d_box.arrow1,d_box.image,'http://www.google.no');
boxLink(d_box.link2,d_box.arrow2,d_box.image,'http://www.google.no');
boxLink(d_box.link3,d_box.arrow3,d_box.image);
【问题讨论】:
-
在 vim 中只需执行
ggdGzz即可解决您的问题
标签: flash actionscript function actionscript-2 movieclip