D0811223 ムービー境界で出入りするMC(No.845)をAS3.0で記述
Name
Date 2008年11月22日 (土) 23時46分
Message こんばんは。いつも参考にさせていただいてます。
またまた初歩的な質問で申し訳有りませんが、Q&Aサンプル作品集のムービー境界で出入りするMC(No.845)をAS3.0でするとどのようにすればよろしいのでしょうか?
専門書を参考にしたり、検索してみて何とか自力で打ち直してみようと思いましたがどうしても出来ませんでした…
どなたかご存知の方いらっしゃいましたら、お願いします。
Response 01
2008年12月01日 (月) 00時40分> joy   
彰さん、

以下で上手くいくのではなかと思います。
AS3.0では、hitTestObject()が、サポートされていますが、mouseooverやmouseoutで、目的を達成できるのではないかと思い、以下のようにしました。

//ここから
this.stop();//念のため
/*他の音関連は、AS3.0に変更するのを、省略したので、AS1.0/2.0で残っていると、エラーになるため、ライブラリーから、削除しました。境界線の動きのみ、AS3.0化してます。*/

var leftX:Number = 0;
var rightX:Number = 70;
var Check:Boolean=false;//mouseover/mouseout状態を見る、制御変数で、初期値は、false
var theX:Number;

/*下地のインスタンス名を、s_mcとし、mouseover、mouseout時のイベントリスナー設置*/

s_mc.addEventListener(MouseEvent.MOUSE_OVER,mouseover);
s_mc.addEventListener(MouseEvent.MOUSE_OUT,mouseout);

function mouseover(event:MouseEvent):void {//mouseover時に、制御変数 Checkを、trueとし、
Check=true;
}
function mouseout(event:MouseEvent):void {//mouseout時に、falseとする
Check=false;
}

s_mc.addEventListener(Event.ENTER_FRAME,moveto);//movetoを設置し、
function moveto(event:Event):void {
if (Check) {//trueなら、目標theXを70として、出現させる
theX = rightX;
} else {//falseなら、theXを0として、ステージから、引かせる
theX=leftX;
}
s_mc.x += (theX - s_mc.x)/4;
}
//ここまで

このページの先頭へ