- 2008-09-11 (木) 14:41
- action script
例えばオブジェクトをマウスダウンでドラッグ開始させるときに最前面に再配置したい時:
sprite.addEventListener(MouseEvent.MOUSE_DOWN, dragStart);
sprite.addEventListener(MouseEvent.MOUSE_UP, dragStop);
function dragStart(e:MouseEvent):void {
setChildIndex(Sprite(e.currentTarget), numChildren - 1);
e.currentTarget.startDrag();
}
function dragStop(e:MouseEvent):void {
e.currentTarget.stopDrag();
}
Sprite 型にキャストすること。再配置する場所は numChildren – 1 になるということ。
ブログにでも書いておかないとすぐ忘れるw
ついでとして、ドラッグさせたいオブジェクトがステージ上にたくさんある場合、こうやって最前面にしてやらないと、下側のオブジェクト(A)を上側の別オブジェクト(B)上(正確にはAがBに潜りこんでいる感じ)でマウスアップしてドラッグ解除した時に、Aのマウスアップを検出したいのにBのマウスアップを検出してしまっておかしなことになる。それを防ぐ効能もあり。
- Newer: TeraClock でアナログ時計も簡単に作れます
- Older: 扇型グラフを ActionScript で描く
Comments:2
- tmw 08-09-14 (日) 4:14
-
はじめまして、こんにちは。いつも楽しく拝見させていただいております。
ちょっとだけ気になりましたのでコメントをさせていただきます。単に最上位に配置しなおす場合、
setChildIndex(Sprite(e.currentTarget), numChildren – 1);
の部分は
addChild(Sprite(e.currentTarget));
とするだけで大丈夫だったと思います。意図している事と違うようでしたら、ごめんなさい。。
- tera 08-09-14 (日) 13:35
-
tmw様
はじめまして。コメントありがとうございます。
ほんとだ!それでいけそうですね。その方がスマートな感じがしますね。
ちょっと後でやってみます。ありがとうございました。とりいそぎ。あと個人的メモ:
重なった時、下のリスナーが動いてないか確かめること(この辺もまだあやふやな理解w)
Trackbacks:2
- Trackback URL for this entry
- http://www.trick7.com/blog/2008/09/11-144122.php/trackback
- Listed below are links to weblogs that reference
- AS3 で swapDepths 的なことをやる時 from trick7
- pingback from 散蓮華 » Blog Archive » 色変えただけ・・・ 09-05-26 (火) 12:05
-
[...] trick7 – AS3 で swapDepths 的なことをやる時 [...]
- pingback from GEN » Blog Archive » as3でswapDepths 09-11-11 (水) 23:01
-
[...] 参考サイト:trick7 タグ: as3.0, basic コメント (RSS) | トラックバック [...]






![Flash Math & Physics Design:ActionScript 3.0による数学・物理学表現[入門編]](http://ecx.images-amazon.com/images/I/617sNhK9P9L._SL75_.jpg)


![FLASH ActionScript 2.0入門完全ガイド+実践サンプル集 [CD-ROM付]](http://ecx.images-amazon.com/images/I/51915J1BG6L._SL75_.jpg)


