※ ChatGPTを利用し、要約された質問です(原文:マウス位置によって画像を切り替える)
画像を切り替えるFlashの作成方法
このQ&Aのポイント
Flashを使ってマウス位置によって画像を切り替える方法について解説します。
画像のファイルを読み込み、それぞれをムービークリップとして配置します。
マウスの座標に応じて、適切な画像を表示する処理を追加します。
ステージ上のマウス位置を読み取り、その座標によって画像を切り替えるFlashを作成中なのですが、上手くいきません。
流れとしては
画像のファイルを読み込む
↓
画像のファイル分だけムービークリップを作成
↓
マウスの座標に応じて画像(ムービークリップを切り替える)
というものです。
下記のようにかいています。
●1フレーム目
//各画像の変数読み込み
jpg1 = "test1.jpg";
jpg2 = "test2.jpg";
jpg3 = "test3.jpg";
jpg4 = "test4.jpg";
//初期配置
//空のMCを作成し、その中に画像変数を読み込ませる。
_root.createEmptyMovieClip("image_mc0",4);
_root.createEmptyMovieClip("image_mc1",3);
_root.createEmptyMovieClip("image_mc2",2);
_root.createEmptyMovieClip("image_mc3",1);
_root.image_mc0.loadMovie(_root.jpg1);
_root.image_mc1.loadMovie(_root.jpg2);
_root.image_mc2.loadMovie(_root.jpg3);
_root.image_mc3.loadMovie(_root.jpg4);
//マウスが押されたときに変数MCclickをオンにする
_root.mouse_mc.onPress = function() {
MCclick = true;
trace( "押された時の変数 " +_root.MCclick);
}
//マウスが離れた時に変数MCclickをオフにする
_root.mouse_mc.onRelease = function() {
MCclick = false;
trace( "離れた時の変数 " +_root.MCclick);
nowpoint = (_root._xmouse);
trace( "今の位置" + nowpoint);
}
//マウスがボタン領域外にいった時に変数MCclickをオフにする
_root.mouse_mc.dragOut = function() {
MCclick = false;
trace( "どっかいった時の変数 " +_root.MCclick);
}
stop();
●ステージ上にかぶせている透明なMC(mouse_mc)
//MCclickがオンの時変数mc_xの値をとり続ける
onClipEvent (mouseMove) {
if (_root.MCclick) {
_root.mc_x = (_root._xmouse);
trace( "押された時の変数mc_xの位置 " + _root.mc_x);
trace( "マウスを押したままの変数 " + _root.MCclick);
//100以下の時に画像1を表示
if((_root.mc_x >= 0) || (_root.mc_x <= 100)){
_root.image_mc0._visible = true;
_root.image_mc1._visible = false;
_root.image_mc2._visible = false;
} else if((_root.mc_x >= 100) || (_root.mc_x <= 200)){
_root.image_mc0._visible = false;
_root.image_mc1._visible = true;
_root.image_mc2._visible = false;
} else if((_root.mc_x >= 200) || (_root.mc_x <= 300)){
_root.image_mc0._visible = false;
_root.image_mc1._visible = false;
_root.image_mc2._visible = true;
}
}
}
この書き方で一応動作はするのですが、1枚目と2枚目の画像の切り返しか動作が行われなくて困っています。
画像のサイズ、ステージのサイズは両方とも 400*400です。
お礼
ご教授ありがとうございます。 ですが、試した所変化がありませんでした・・。 _root.createEmptyMovieClipで空のMCを作った時に重ね順が上手く行ってないのが原因かもしれません・・・ 書き忘れましたがFlash8 proです。 引き続きよろしくお願いします・・