circle1.hitTestObject(circle2)
これでcircle1とcircle2との重なり判定し
重なっていたらtrueを返します。
ただし、判定は描画領域にではなく
オブジェクトを内包するギリギリの大きさの矩形領域です。
AS2のHitTestと似てるので載せるまでもないですね。
AS3になって描画領域で判定してくれるかも!と淡い期待をしていたので
身勝手な怒りをこめて。
circle1.hitTestObject(circle2)
これでcircle1とcircle2との重なり判定し
重なっていたらtrueを返します。
ただし、判定は描画領域にではなく
オブジェクトを内包するギリギリの大きさの矩形領域です。
AS2のHitTestと似てるので載せるまでもないですね。
AS3になって描画領域で判定してくれるかも!と淡い期待をしていたので
身勝手な怒りをこめて。
できませんでした。
var sp:Sprite=new Sprite(); var id:uint sp.id=2;//コンパイルエラー
MovieClipならできました。
var mc:MovieClip=new MovieClip(); var id:uint mc.id=2;
無理なのかな?
イベント処理時の引数を渡す方法です。
var bt:Sprite=new Sprite();
bt.addEventListener(MouseEvent.ROLL_OVER, rollOverHandler(50));
function rollOverHandler(_id:int) :Function{
return function (e:MouseEvent):void{;
trace(_id);//出力:50
}
}
これでイベントプロパティは「e」で
リスナに設定した変数は「_id」で扱えるようになります。
ただ、CS3で自動フォーマットをかけると おかしくなるので注意です。
汎用性の高いクラス作ったのは良いけど、
結局タイムラインベースにスクリプト書いちゃってるのでフレームが移動すると
また、importからやり直し、というのをよくやってしまいます。
あまりにもいろんなところでimportするクラスに関しては
めんどうなのでグローバル化してしまうことにしています。
import Hoge; _global.Hoge = Hoge
これでHogeクラスがどこでも使えるようになります。
UIコンポーネントにマスクを適用するときに
マスクレイヤーによる適用をするとラベルが消えてしまいます。
スクリプトのsetMaskによる適用なら問題ないらしいです。
知ってればほんと大したことないことなんですが
知らずに進めてて、後で修正ってなったときに偉いことになりそうなんで、とりあえず。
最近のコメント