プロが教えるわが家の防犯対策術!

制作環境AS3.0、CS4です。

フルスクリーンでMovieClipを右移動させて、
画面右で切れた分(部分)を左から表示させたいです。
(ドキュメントサイズとMovieClipは同サイズで
途切れることなくひと続きのようにループしたいです)

フルスクリーン(画面可変)のため数値で指定できないため
応用がきかずに困ってます・・・

以下、現状ソースです。

var speedX:Number=20;
back_mc.addEventListener(Event.ENTER_FRAME, onEnterframe);

function onEnterframe(eventObj:Event):void {
var mc:MovieClip=eventObj.target as MovieClip;
//ステージの右に出た分だけ・・・
if (mc.x+stage.stageWidth>stage.stageWidth) {
//ステージの左に表示
mc.x-=stage.stageWidth-mc.x;
} else {
mc.x+=speedX;
}
}

そもそも1つのMovieClipでつなぎあわせるのは、if文では無理かもしれませんが・・・
詳しい方、ご教授お願いしたいです。

A 回答 (1件)

ムービークリップ内に


最初から2つとか3つの(場合によっては4つや5つの)
そのル画像を(または画像入りムービークリップを)
横並びに入れておけば良いのではないでしょうか。

1つの画像が例えば
|谷山川山谷|
だったとすると
|谷山川山谷|谷山川山谷|谷山川山谷|…
みたいに入れておくわけです。

その横長ムービークリップの基準点は
ムービークリップの左上コーナーにしておくものとします。

そして,
その横長ムービークリップを
コンスタントに +方向(右方向) に20pxずつ動かすのですが
基準点がステージの左端(x座標=0)を超えた瞬間だけ
その瞬間の座標から画像1枚分の横幅だけ -方向(左方向) に一気に移動させます。

するとループしているように見えます。


//-------------------------------------------
//ステージ内の拡大縮小なし(?)
stage.scaleMode = StageScaleMode.NO_SCALE;
//ステージの左上コーナーを基準として整列
stage.align = StageAlign.TOP_LEFT;

var speedX:Number=20;

//画像1枚の横サイズ(例:320px)
var pictureW:Number = 320;

back_mc.addEventListener(Event.ENTER_FRAME, onEnterframe);

function onEnterframe(eventObj:Event):void {
var mc:MovieClip=eventObj.target as MovieClip;
//
//コンスタントに右移動
mc.x+=speedX;
//
//基準点のx座標が0を超えた瞬間だけ
//(この瞬間の姿は実際には見えない)
if (mc.x > 0) {
//画像1枚分左に移動
mc.x -= pictureW;
}
}
//-------------------------------------------



↓イメージ図↓
「フルスクリーン、画面右で切れた分だけ、左」の回答画像1
    • good
    • 0
この回答へのお礼

ご丁寧にありがとうございます!
すごく助かりました。

実際はステージ内の拡大縮小ありでしたので
以下、少しアレンジさせていただいて解決しました。

//-------------------------------------------
var speedX:Number=20;

back_mc.addEventListener(Event.ENTER_FRAME, onEnterframe);

function onEnterframe(eventObj:Event):void {
var mc:MovieClip=eventObj.target as MovieClip;
//
//コンスタントに右移動
mc.x+=speedX;
//
//基準点のx座標が0を超えた瞬間だけ
//(この瞬間の姿は実際には見えない)
if (mc.x > 0) {
//画像1枚分左に移動
mc.x -= back_mc.width/3;
}
}
//-------------------------------------------

いただいたように発想というか、センスというか
もしくは経験かもしれませんが
ちょっとしたことでも行き詰まることが多いので・・・
もっとがんばります。
以上、どうもありがとうございました!!

お礼日時:2011/09/29 22:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!