Trackback URL
Profile
小野田 智(オノダサトシ)
日本でWebデザイナーとして活動後、英語習得のために渡豪。18ヶ月の修行期間を経て帰国後、Web業界に復帰、某社にてデザイナーとして勤務中。
詳細
Search
Recent Entries
- 28th September 2009
携帯壊れました。 - 30th December 2008
Park Hyatt Tokyo Peak Bar - 22nd December 2008
クリスマスは海外! - 18th October 2008
なんとか生きてます。 - 22nd April 2008
京都八日目~旅を終えて - 20th April 2008
京都六日目~七日目 - 19th April 2008
京都三日目~五日目 - 13th April 2008
京都二日目
30th Aug 2004
depthContorollerクラス
天気が悪いのに出かけたら、案の定、帰り道でもろに台風の被害を受けてしまった。
久しぶりに、「横殴りの雨」ってやつを経験した。
で、話は全く変わって、ASの話。
ムービークリップの深度管理なんだけど、MovieClip.swapDepths()だけでは使い勝手が若干悪い。
Flashのオーサリング時のように、「前へ」とか「最背面へ」とかやりたいわけだ。
他のMCの深度も勝手に変更してしまうので、OOP的には反しているような気がするけど、それでもできたほうがいい時だってある。
今回の僕の場合、万華鏡の破片の深度変更は手軽にやっておきたい。
というわけで、新たにカスタムクラスを作成。例によってクラスメソッドを何種類か実装している。
depthContoroller.changeDepth(targetMC:MovieClip, targetDirection:String)
引数:
targetMC
深度を変えたいMC
targetDirection
“highest”,"higher”,"lower”,"lowest"のどれか。
戻り値:移動先の深度
これがメインのメソッド。
targetMCに設定したMCをその階層の中の任意の深度に移動させる。
例えば、
_root.createEmptyMovieClip("A_mc",1);
_root.createEmptyMovieClip("B_mc",3);
_root.createEmptyMovieClip("C_mc",-5);
newDepth=depthController.changeDepth(C_mc,"highest");
と記述すると、C_mcの深度が3になり、他のMCの深度が1ずつ下がる。
また、newDepthには3が代入される。
他のメソッドに関しては、中のコメントを読んで下さい。
特に対価などは求めませんが、役に立ったら教えてください。
コード上、もっといい書き方があった場合も教えてくれるとうれしいです>上級者の方々
こうやってblogに公開してるけど、実は自分のための忘備録でもあったりして…。
Comments
satoshi posted at 31st August 10:45 2004
どもです。
getNextHighestDepth()は検討したんだすけど、今の結果を得るためにはどうにもうまくいかず、結局この形に落ち着きました。
とりあえず、バグもなく動いてくれてるので現状ではこれでいいのかなと思ってます。
ご指摘、ありがとうございました。






kazutaka posted at 30th August 20:17 2004
Player7以降だったら
getNextHighestDepth()とかgetInstanceAtDepth()とか使うともう少しすっきりかけるかも。
て、あまりちゃんと見てないので外してたらすいません。