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で自動フォーマットをかけると おかしくなるので注意です。
以前に作っていたAS2版をAS3版に移行してみました。
package {
import flash.xml.*;
public class MyXPath {
public static function xmlToArr(_xml:XML):Array {
var reArr:Array=new Array ;
var childXMLList:XMLList=_xml.children();
for (var i=0; i < childXMLList.length(); i++) {
reArr[i]=new Array ;
var childXML:XML=childXMLList[i];
var grandchildXMLList:XMLList=childXML.children();
for (var j=0; j < grandchildXMLList.length(); j++) {
var grandchildXML:XML=grandchildXMLList[j];
reArr[i][grandchildXML.name()]=grandchildXML.toString();
}
}
return reArr;
}
}
}
AS3になってXMLドキュメントへのアクセスがわかりやすくなったらしいので
このクラス自体、あんまり使わないかもしれないですが。