ActionScriptでlocalToGlobal()を使用することがあったのですが「なーんかずれてる」ってことがあったのでメモ。
mymapインスタンスの中にarea0というムービークリップを配置。
さて、mymapをステージに配置してその中のarea0の座標をとります。
var myPoint:Point = new Point(mymap.area0.x, mymap.area0.y);
var gl_point:Point = mymap.area0.localToGlobal(myPoint);
trace(gl_point);
あれ?ずれる?
下が正解
var myPoint:Point = new Point(mymap.area0.x, mymap.area0.y);
var gl_point:Point = mymap.area0.parent.localToGlobal(myPoint);
trace(gl_point);
でした。
自分の親要素の座標を参照するのでparentがいりました。
ちょっとハマる。
自分でもよく忘れるのでメモ。
ボタンイベントで引数を渡す場合
[インスタンス].addEventListener(MouseEvent.ROLL_OVER, ROverHandler(i));
private function ROverHandler(Num:int):Function {
return function(e:MouseEvent):void {
e.target.gotoAndPlay(2);
e.target.removeEventListener(MouseEvent.CLICK, arguments.callee);
}
}
のようにしてremoveEventListenerを付けておく。
この書き方だと外部からremoveEventListener出来ないので使用するときは注意。
でついでにTweenerのonComplete:の時に引数を渡す場合は
Tweener.addTween(インスタンス, { alpha:0, time:1, transition:"easeOutExpo", onComplete: FuncRemove, onCompleteParams:[ここに引数] } );
で行けました。
以上、忘れないように自分へのメモ
ひさびさに記事のアップ
って言っても大した事ではありません。
flashでxmlを読み込むときのキャッシュ対策です。
非常に簡単。
var xml_URL = new URLRequest("data.xml?" + Math.floor(Math.random() * 100));
ってことで後ろにランダムの数字を付けます。
ローカルでは
var xml_URL = new URLRequest("data.xml");
作業中は
//var xml_URL = new URLRequest("data.xml");
var xml_URL = new URLRequest("data.xml?" + Math.floor(Math.random() * 100));
二つ並べてローカル用、サーバーアップ用と”//”のコメントアウトを場合によって付けたり消したりしています。
progressionであらかじめステージに配置したインスタンスへのスコープ。
・index.as内でaddChild(movie)したとします。(movieはMovieClip)
・外部ASファイルでMouseEvent.CLICKを作成したとします。
この際、index.asのmovieにスコープするときは
MovieClip(MovieClip(CastDocument.root)).movieとなります。
自分のためにメモ。
外部asファイルからrootに配置(addChild)したインスタンスにアクセスするときは
外部asファイルに
private function clkHandler(e:MouseEvent):void
{
Object(root).numbers.gotoAndStop(2);
}
って書くとOK。
numbersってのはインスタンス名です。
メモ。