No.2ベストアンサー
- 回答日時:
どうしたら良いかと問われましても
ActionScript のバージョンを明記されないと
場合によっては1文字たりとも回答できませんよ。
勝手に ActionScript 3.0 を使うという条件で
方法の一例を回答します。
まず横長の外部画像は「gazou.jpg」というファイル名で
Flash の SWF ファイルやそれを貼り付ける HTMLファイル と同じフォルダ内に置くものとします。
任意のフォルダ
├○○.fla (○○.swf 1を作る)
├○○.swf
├○○.html (○○.swf を貼り付ける)
└gazou.jpg (外部画像)
また,ステージ上のフレーム1には,
「<」のボタン,「□」のボタン,「>」のボタンの3つが用意されていて
「<」 ボタンには「L_btn」(Lは左の意味),
「□」のボタンには「S_btn」(Sは Stop の意味),
「>」のボタンには「R_btn」(Rは右の意味) というインスタンス名が
それぞれのボタンに付けてあるものとします。
(インスタンス名は各ボタンを1つずつ選択した状態で,プロパティパネルより命名する。)
それら3つのボタンとは別に
ActionScript を書く用にするレイヤーを挿入し
フレーム1 のキーフレームに 次のスクリプトをコピペします。
///////////////////////////////////////////////
//外部画像ファイルへのパスを設定
var url:URLRequest = new URLRequest("gazou.jpg");
//外部画像を動かすスピードを設定
var spd:Number = 7.5;
//外部画像を配置するy座標を設定
var y_pos:Number = 20;
//外部画像の左端が来る限界位置を設定
var L_lim:Number = 0;
//外部画像の右端が来る限界位置を設定
var R_lim:Number = stage.stageWidth;
//---↑以上が適当に変更する設定↑---
//Loaderインスタンスを作成&配置
var ld:Loader = new Loader();
ld.x = L_lim;
ld.y = y_pos;
addChild(ld);
//外部画像の横幅を入れる変数の宣言
var gazou_w:Number;
//Loaderを動かすpx数を入れる変数の宣言
var move_px:Number;
//外部画像にアクセス可能になった時に関数onLoadINITを実行
ld.contentLoaderInfo.addEventListener(Event.INIT,onLoadINIT);
function onLoadINIT(e:Event):void {
//外部画像の横幅を記録
gazou_w = e.target.width;
//L_btnクリック時に関数 onLClick を実行
L_btn.addEventListener(MouseEvent.CLICK,onLClick);
//S_btnクリック時に関数 onSClick を実行
S_btn.addEventListener(MouseEvent.CLICK,onSClick);
//R_btnクリック時に関数 onRClick を実行
R_btn.addEventListener(MouseEvent.CLICK,onRClick);
}
//Loaderに外部画像をロード
ld.load(url);
//L_btnクリック時に実行する関数 onLClick を定義
function onLClick(e:MouseEvent):void {
//Loaderを動かすpx数を spd にする
move_px = spd;
//1フレーム時間ごとに毎回 関数 moveLoader を実行
addEventListener(Event.ENTER_FRAME,moveLoader);
}
//S_btnクリック時に実行する関数 onSClick を定義
function onSClick(e:MouseEvent):void {
//1フレーム時間ごとに毎回 関数 moveLoader を実行するのをやめる
removeEventListener(Event.ENTER_FRAME,moveLoader);
}
//R_btnクリック時に実行する関数 onRClick を定義
function onRClick(e:MouseEvent):void {
//Loaderを動かすpx数を -spd にする
move_px = - spd;
//1フレーム時間ごとに毎回 関数 moveLoader を実行
addEventListener(Event.ENTER_FRAME,moveLoader);
}
//関数 moveLoader を定義
function moveLoader(e:Event):void {
//Loaderのx座標を move_px 動かす
ld.x += move_px;
//Loaderの左端x座標が限界を超えたら
if (ld.x>L_lim) {
//Loaderの左端x座標を左の限界にする
ld.x=L_lim;
//1フレーム時間ごとに毎回 関数 moveLoader を実行するのをやめる
removeEventListener(Event.ENTER_FRAME,moveLoader);
//Loaderの右端x座標が限界を下まわっていたら
} else if (ld.x < - gazou_w+R_lim) {
//Loaderの右端x座標を右の限界にする
ld.x=- gazou_w+R_lim;
//1フレーム時間ごとに毎回 関数 moveLoader を実行するのをやめる
removeEventListener(Event.ENTER_FRAME,moveLoader);
}
}
///////////////////////////////////////////////
パブリッシュ または
「制御」→「ムービープレビュー」で動作確認できると思います。
//外部画像ファイルへのパスを設定
var url:URLRequest = new URLRequest("gazou.jpg");
これ↑で設定する外部画像のパスは
○○.html (○○.swf を貼り付ける) から見たパスです。
○○.swf から見たパスではないので階層を変える場合は注意してください。
◎例
任意のフォルダ
├○○.html (○○.swf を貼り付ける)
└files(フォルダ)
├○○.fla (○○.swf 1を作る)
├○○.swf
└gazou.jpg (外部画像)
この場合は
var url:URLRequest = new URLRequest("files/gazou.jpg");
になります。
=*=*= =*=*= =*=*=
> 1フレームでストップして、ボタンで2フレームに移動して
> トゥイーンで動かしたら良い。
その路線で単純に行くとすれば左右どちらかにしか進めませんよね。
左右どちらにでも動かす場合は
フレームを逆再生させる必要が出てきます。
逆再生させるのでしたら次のページが参考になると思います。
(ただし次のページは ActionScript 3.0 ではありません。ActionScript 1.0 です。)
「ロールアウトで逆戻りするアニメーション」
http://fumiononaka.com/TechNotes/Flash/FN0303003 …
また,外部画像ですから編集中は見えないので,
トゥイーンで動かすにしても結構頭を使うと思います。
ありがとうございました。
プログラムの意味はうっすらとしか、まだ分かりませんが。。。
ソースまで書いていただいてありがとうございます。
実際に動きます!
さらにソースを読み解いて理解しようと思います。
この度は、本当にありがとうございました。
>どうしたら良いかと問われましても
>ActionScript のバージョンを明記されないと
仰るとおり、ActionScript 3.0(FLASH CS5)です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS トリミングで表示した画像をクリックで元どおりにしたい 3 2022/12/16 18:49
- Visual Basic(VBA) VBA 画面上のカーソルに文字数字を入力するコードを教えて下さい 1 2022/10/30 10:31
- 写真・ビデオ iPhoneで撮影した動画の画角をキープした状態で容量を減らす方法。 3 2022/09/25 17:23
- Facebook Facebookの投稿欄が変に? 投稿できない! 1 2023/04/12 14:45
- モニター・ディスプレイ マルチモニタでのカーソルの動き方 1 2022/06/15 14:59
- Visual Basic(VBA) エクセルVBA 4 2022/05/14 00:51
- Android Androidの起動 3 2022/08/14 01:27
- マウス・キーボード ロジクールGHUBのインストール~初期設定 1 2023/04/23 21:36
- JavaScript HTML&CSS Javascriptによる動的テーブル 1 2023/03/27 19:51
- その他(ソフトウェア) IrfanView で画像のスクロール?できますか 1 2022/08/31 13:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ゲオでカードを作るのは何歳か...
-
フラッシュゲームアーカイブ2
-
レジリエンス 変換キーが作動し...
-
この曲はなんでしょう?
-
arduino プログラムについて
-
FLASHの再生はできないのでしょ...
-
ウェブサイトで Flash が事実上...
-
Flashコンテンツを使ったWebサイト
-
Flash Playerのサポートが終了
-
VBAのコンボボックスの年月表示...
-
Adobe Flash Player
-
Windows10重い
-
uwscでExcelに自動記入
-
パソコンのリカバリーについて
-
iPhoneです。 Adobeフラッシュ...
-
Adobe(マクロメディア)のFLAS...
-
ヘッダーデザインをするさい形...
-
更新されて起きた問題
-
googlechromeでadobeflashplayer
-
Flash playerを有効にするには
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
WEBブラウザの重複起動の禁止
-
Flashでのゲーム用アナログ時計...
-
ムービーの早送りと巻き戻しが...
-
ボタンで移動する前に、特定のM...
-
Error#1009 時計のシーン移動ボ...
-
Flash Professional CS5
-
ループ再生のflashをタイムライ...
-
画像がランダムに表示されるFLA...
-
ActionScriptの基本的な部分で...
-
キーボードを押した時のムービ...
-
【ActionScript】命令文を再実...
-
FLASH lite1.1での質問というか...
-
画像をランダムに表示させたい
-
深い階層でのムービークリップ...
-
Flash lite1.0の計算クイズ
-
プルダウンメニューとフェード...
-
loadMovieで読み込んだswf
-
外部画像を読み込み、ボタンで...
-
Flashで右クリックメニューにつ...
-
フレーム内に移動したい
おすすめ情報