D0502102 横に並べた画像のスクロールが上手くループしない?
Name ゆう
Date 2005年02月10日 (木) 03時21分
Message はじめまして FLASh制作でいきずまっていろんなサイトを回ってたどりつきました。
スクリプト初心者なので変なことを聞いてるかと思いますがどうかよろしくお願いします。
やりたいことを説明致しますとステージ800ピクセルで100×100の画像(ボタンクリップ)を20枚ほど横に並べ左から右、もしくは右から左へとスクロールして行ききったところでループさせるものです。今はステージ内に全部の画像(縮小して)を入れるときれいにループするのですが、画像を100×100にするとステージの倍以上のはばになりこれをどうループさせていいのかがわかりません。今は本を頼りに
center = Stage.width/2;
harfWidth = _parent._width/2;
this.onEnterFrame = function() {
with (_parent) {
scrollSpeed=Math.round((_parent._xmouse-center)*-0.04);
_x+=scrollSpeed;
if (_x>Stage.width+harfWidth) {
_x-=Stage.width+_width;
} else if (_x<-harfWidth) {
_x+=Stage.width+_width;
}
}
};
な感じなのですが、どうなおしていいのかわかりませんのでアドバイスお願い致します。
Response 01
2005年02月10日 (木) 13時32分> 憲ちゃん 
はじめまして、ゆうさん♪

Flashはスクリプトだけで動いているものではありませんので、これだけでは情報不足です(^^;
「ボタンクリップ?」というのは、画像をボタンにしてムービークリップで包んだものでしょうか?
憲ちゃんが知らないだけかもしれませんが、あまり聞きなれない単語なのでよく分からないのと…
画像がムービークリップだとして、スクリプトはその中の1フレームに書かれたものか?
また20枚の画像ムービークリップをそれぞれシーンのステージに直接配置されておられるものか、
またはこれらを一旦束ねてムービークリップにしたものをステージに配置しておられるのか?
他にも何かあるのか?このあたりのことをもう少し補足してくださらないと・・・
憲ちゃんには全体構造が見えないので、原因が構造にあるのかスクリプトにあるのかを含めて、
適切にアドバイスすることができません。

ただ縮小版で”本当に上手く”ループしているのなら、仮にステージの何倍の幅になっても、
同じようにループすると思います(*^.^*)

ゆうさんのおっしゃる「これをどうループさせるかわかりません」とは??
それのどういうことが都合悪くてどう修正ループされたいのでしょうか(;^_^Aアセアセ・・・
Response 02
2005年02月11日 (金) 16時48分> 憲ちゃん 
それはそれとして、また構造等を教えていただいたらお答えしますが・・・

例えばムービーの構造として、以下の図のように各画像を「画像セットMC」に配置し、



このムービークリップをシーンに配置することとします。

具体的な方法は、まずシーン編集画面に直接20枚の画像を横一列に配置。
それをメニューバー「編集」→「すべて選択」ですべての画像が選択された状態で、
メニューバー「挿入」→「シンボルに変換」で「シンボルに変換」パネルをだし、
名前を適当に例えば「画像セットMC」とし、タイプを「ムービークリップ」、
基準点を必ず「左上」に設定して「OK」をクリックします。
これで中身が図の状態の「画像セットMC」がシーン上に作成されます。
これをシーン上でクリック選択し、アクションパネルで以下のようにクリップアクションを記載。

 onClipEvent (load) { MCが読み込まれた最初に
   stageW = 520;←変数stageWにムービーの横幅を代入 ※以下のサンプルは「520px」
   speed = 20;←変数speedにスクロール速度を代入 ※値が大きいほど遅く小さいほど速い
   this._x = -this._width;←最初の画像(自分)の位置をムービーの左外に設定
 }
 onClipEvent (enterFrame) { フレームレート(普通1/12秒)ごとに以下を繰り返し実行
   this._x += (stageW/2-_root._xmouse)/speed;←マウスのX座標値によってスクロール移動
   if (this._x > stageW) { その結果、ムービーの右外に出てしまったら
     this._x = -this._width;←自分の位置を左外に配置しなおす
   } else if (this._x < -this._width) { 左外に出てしまったら
     this._x = stageW;←自分の位置をムービーの右外に配置しなおす
   }
 }

以上です(*^.^*)


scroll5.fla

ゆうさんのイメージに合っていますでしょうか(^^;
Response 03
2005年02月12日 (土) 04時16分> ゆう 
憲ちゃん、早速のご教授ありがとうございます。
しかもよくわかんないような質問内容からここまで作っていただいて感謝大感激です。ぼくがやりたいのはまさしくこれです。ほんとうにありがとうございました。
そこで憲ちゃんが作ってくれたモノを参考に作っていこうと思うのですが図々しくもう一つ質問してもよろしいでしょうか?
いまAとZの間があいていますが、空かないようにはできたりするのでしょうか?
またまたご教授よろしくお願いします
Response 04
2005年02月14日 (月) 17時16分> 憲ちゃん 
途切れなくループする場合は、前後にある程度余分に画像を追加する必要があります。
一応、上のサンプルでそのケースを下に追加しましたので、flaファイルのスクリプトを分析され、
考え方等は、過去記事の・・・
■最後と最初が途切れなくループする画像スクロール!
■ムービークリップをActionでスクロールさせたい(2)
などにも掲載していますので参考にしてください(*^.^*)

このページの先頭へ