- 2007年8月30日 21:53
- AS2
ステージ上のすべてのmcを制御したいと思うことがよくあります。
ボタンを押すと小窓が出て、ちょこまかうごいていたmcが一瞬で止まるという動きです。全てのmcの名前を知っていて、_root.a1_mc.stop();_root.a2_mc.stop();...なんてやってたらキリがないので、こういうやりかたはどうでしょう。
var aArr:Array = new Array();
a_btn.onRelease = function() {
for (var mc in _root) {
aArr.push(mc);
}
for (var i:Number = 1; i < aArr.length; i++) {
eval(aArr[i]).stop();
}
};
配列aArrにステージ上(ここでは_root)のオブジェクトを全て書き出して、stringとして名前を取得。それをaArrの長さだけ(aArr[0]は_rootだから1から)ループさせながらeval(aArr[i])とすればmcを扱っているのと同じ、というわけ。
UNIQLOのサイトみたいに、たくさんのボタンmcがあって、クリックすると商品の説明が表示される仕組みの場合、ひとつの説明を出している間はほかのボタンを押させたくないことがよくあります。そういうときはこれで、_rootじゃなくても必要なmc内のインスタンスを取得して、_enabled=false、と指定してやればいいんじゃないかな。
もっとスマートなやり方があったら教えてください。
- Newer: 欲しい腕時計がありました:TAKUMI CAOCAOウオッチ
- Older: embedを書かないobject(flash)の設置方法。
Comments:0
Trackbacks:0
- TrackBack URL for this entry
- http://ryow.net/mt/mt-tb.cgi/227
- Listed below are links to weblogs that reference
- ステージ上の全てのmcを一瞬で止める、動かすactionscript from ryow.net Blog