短縮機能コード変換変数
-
05-09-2019 - |
質問
私はこのAS2コードは簡単なアニメの時にロールオーバー、mcをTweenLite.
感じることはたくさん持っているんですが繰り返します。
があるので、できるだけ指定機能はこのような
boxLink(a);
としてのコードは、パスの目標をmovieclipの機能の代わりに、関数の変数?
たいのですがこのコードの長さは最短として下さい?
でに変換する変数による文字列変数: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);
解決
使用の配列の代わりに変数名
a_box.link_1, a_box.link_2, ..., a_box.link_3
となり
a_box.link[ i ] where i = 0 to n-1, n = number of links
同じめます。
次に、ラッパー boxLink()
public function
boxLinkWrapper(x:BoxType, url:string='http://www.google.no') :ReturnType {
for (i:int = 0; i < x.link.size; ++i) {
boxLink(x.link[ i ], x.arrow[ i ], x.image, url);
}
}
また、いくつものような箱に入れる配列:
var boxes:Array = new Array();
boxes.push(new Box("a")); //a_box
boxes.push(new Box("b")); //b_box
ップ"のワークショップをお勧めしますか、各ボックス
public function
processBox(x:BoxType):SomeReturnType {
imageAlpha(d_box.image);
boxLink(a_box.link1,a_box.arrow1,a_box.image,'http://www.google.no');
}
ションを行うとともに、ループの配列のボックス、または利用のforEach()のメンバー関数:
boxes.forEach(processBox);
も忘れずに置き換えBoxType,SomeReturnTypeとReturnTypeにより、適切な種類です。なすか? (注:これは、潜在的に秘コードは取得します。)
所属していません StackOverflow