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ドキュメントへのアクセスがわかりやすくなったらしいので
このクラス自体、あんまり使わないかもしれないですが。

1  2  3  4  5  6  7  8

このアーカイブについて

このページには、過去に書かれたブログ記事のうちAS3カテゴリに属しているものが含まれています。

前のカテゴリはAS2です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。