質問: 写真を左から右に速くループしてだんだんゆっくり動かしていくにはどうしたらいいでしょうか?いろいろ調べましたがわかりません。as使用でもなんでもかまいません。 どなたかご存知の方どうか教えてください。よろしくお願いいたします。
回答: #1です。 もし Flash CS3 以上をお持ちでしたら 「今どき ActionScript 1.0 なんて古すぎる!」 などと思われる可能性も高いので #1 とほぼ同じものを ActionScript 3.0 で作る方法も書いておきます。 状況は基本的に #1 と同じで 写真は複数枚あって その写真を横に並べたときにステージの横幅を超えるものとします。 また その写真コピペで2倍の枚数に増やして引っ付けて横に並べたものを 基準点左上のムービークリップ(以下 MC と略)に変換したとします。 ここまでは同じです。 ActionScript 3.0 の場合 選択したMC自体にスクリプトを書くことはできません。 ですから作成したMCを選択して 「プロパティ」パネルを表示させ  <インスタンス名> ] となっている欄でそのMCにインスタンス名を付けます。 ※「プロパティ」パネル(インスペクタ)は CS3の場合デフォルトではステージの下, CS4とCS5の場合デフォルトではステージの右に あります。 ここではMCに 「photo_mc」というインスタンス名を付けたとしておきます。 その「photo_mc」があるレイヤーとは別に 新規レイヤーを追加し そのレイヤーの空白キーフレームに次のようなスクリプトを書きます(コピペ可)。 --------------------- //最初に動く速さを設定 var speed:Number = 50; //減速度合いを設定 var down_speed:Number = 0.4; //photo_mcに毎フレーム時間で関数moveMCを //実行するイベントリスナーを登録 photo_mc.addEventListener(Event.ENTER_FRAME,moveMC); //関数 moveMC の定義 function moveMC(e:Event):void{ //speed の値が 0 より大きい場合 if (speed > 0) { //speed の値をdown_speedだけ減算 speed -= down_speed; //speed の値が 0 以下になれば } else { //speed の値を 0 で固定 speed = 0; //photo_mcのイベントリスナーを削除 e.target.removeEventListener(Event.ENTER_FRAME,moveMC); } // //photo_mcのx座標をspeedだけ右に移動 e.target.x += speed; // //photo_mcのx座標が 0 より大きくなれば if (e.target.x > 0) { //photo_mcの横幅の半分だけ左に移動 e.target.x -= e.target.width / 2; } } --------------------- これでパブリッシュやムービープレビューしてもらうと 書かれていらっしゃるような感じのものはできると思います。 Flash Player 9 以上 で動作可能なスクリプトです。 なお#1の方法も この#2の方法も Flash Lite 1.0 や 1.1(携帯版 Flash Player) には対応していません。 Flash Lite 1.0 や 1.1 は Flash Player 4 相当です。 もしこれら Flash Lite 用の Flash を作る場合は スクリプトのみならずムービーの構造自体を変更する必要があります。 とにかく何にしても「バージョン」が大切です。 ![ 画像をクリックしてイメージを拡大