いつもお世話になります。
「ボタンの有効と無効」及び「左右ボタンで方向切替」を合体させてアクションスクリプトを記述しました。ボタンが1個の時に、falseとtrueで有効・無効を教えていただきました。
次にボタンを2個とした場合、右ボタンを押し、即座に左ボタンを押すとやはり移動位置が狂ってしまいます。私にとっては行数が増え、どのように対処すればいいのかわかりません。
教えてください。
//クラスのインポート
import mx.transitions.Tween;
import mx.transitions.easing.*;
//画像1枚の横幅を設定
var g_w:Number = 120;
//画像の枚数を設定
var g_n:Number = 7;
//カウンタ用変数
var cnt:Number = 0;
//「L_btn」を非表示にしておく
L_btn._visible = false;
//「R_btn(→ボタン)」クリック時の動作を定義
R_btn.onRelease = function():Void {
//もしカウンタが 画像の枚数-1 未満であれば
(cnt<g_n-1) {
var myTween = new Tween(my_mc, "_x", Regular.easeOut, my_mc._x, my_mc._x-g_w, 3, true);
//bt1のボタン機能を無効にする
R_btn.enabled = false;
//myTweenのモーション終了時に実行するメソッドを定義
myTween.onMotionFinished = function() {
//ボタン機能を有効にする
R_btn.enabled = true;
}
//L_btnを表示する
L_btn._visible = true;
//なおかつカウンタが 画像の枚数-2になれば
if (cnt == g_n-2) {
//R_btnを非表示にする
R_btn._visible = false;
}
//カウンタに1を加算
cnt++;
}
}
//L_btnクリック時の動作を定義
L_btn.onRelease = function():Void {
//もしカウンタが 0 より大きい場合は
if (cnt>0) {
var myTween = new Tween(my_mc, "_x", Regular.easeOut, my_mc._x, my_mc._x+g_w, 3, true);
//bt1のボタン機能を無効にする
L_btn.enabled = false;
//myTweenのモーション終了時に実行するメソッドを定義
myTween.onMotionFinished = function() {
//ボタン機能を有効にする
L_btn.enabled = true;
}
//R_btnを表示する
R_btn._visible = true;
//なおかつカウンタが 1 になれば
if (cnt == 1) {
//L_btnを非表示にする
L_btn._visible = false;
}
//カウンタから1を減算
cnt--;
}
};
No.1ベストアンサー
- 回答日時:
移動位置が狂うのは「R_btn」や「L_btn」クリックで
お互いのボタン機能を操作していないからでしょう。
書かれているスクリプトでは
「R_btn」をクリックしても「L_btn」をクリックしても
"クリックしたボタンのみ" の機能を無効にしています。
そうではなくて
「R_btn」をクリックしても「L_btn」をクリックしても
どちらにしてもTweenが終わるまで "両方" のボタン機能を無効にしておく必要があります。
書かれているスクリプトを
そのまま延長した場合のスクリプト例です↓。
(「★」を付けた部分が変更点)
//------------------------------
//クラスのインポート
import mx.transitions.Tween;
import mx.transitions.easing.*;
//画像1枚の横幅を設定
var g_w:Number = 120;
//画像の枚数を設定
var g_n:Number = 7;
//カウンタ用変数
var cnt:Number = 0;
//「L_btn」を非表示にしておく
L_btn._visible = false;
//「R_btn(→ボタン)」クリック時の動作を定義
R_btn.onRelease = function():Void {
//もしカウンタが 画像の枚数-1 未満であれば
if (cnt<g_n-1) {
var myTween = new Tween(my_mc, "_x", Regular.easeOut, my_mc._x, my_mc._x-g_w, 3, true);
//★L_btn & R_btn のボタン機能を無効にする
L_btn.enabled = false;
R_btn.enabled = false;
//myTweenのモーション終了時に実行するメソッドを定義
myTween.onMotionFinished = function() {
//★L_btn & R_btn のボタン機能を有効にする
L_btn.enabled = true;
R_btn.enabled = true;
};
//L_btnを表示する
L_btn._visible = true;
//なおかつカウンタが 画像の枚数-2になれば
if (cnt == g_n-2) {
//R_btnを非表示にする
R_btn._visible = false;
}
//カウンタに1を加算
cnt++;
}
};
//L_btnクリック時の動作を定義
L_btn.onRelease = function():Void {
//もしカウンタが 0 より大きい場合は
if (cnt>0) {
var myTween = new Tween(my_mc, "_x", Regular.easeOut, my_mc._x, my_mc._x+g_w, 3, true);
//★L_btn & R_btn のボタン機能を無効にする
L_btn.enabled = false;
R_btn.enabled = false;
//myTweenのモーション終了時に実行するメソッドを定義
myTween.onMotionFinished = function() {
//★L_btn & R_btn のボタン機能を有効にする
L_btn.enabled = true;
R_btn.enabled = true;
};
//R_btnを表示する
R_btn._visible = true;
//なおかつカウンタが 1 になれば
if (cnt == 1) {
//L_btnを非表示にする
L_btn._visible = false;
}
//カウンタから1を減算
cnt--;
}
};
//------------------------------
一応は以上です。
=====================
しかし...
私はせっかちですから
閲覧者の立場で上のスクリプトを動作させると非常にイライラします。
私でしたらボタン機能は無効にせずに次のようにします。
(本題とは関係のない ★オマケ 機能も勝手に入れてます)
//------------------------------
//クラスのインポート
import mx.transitions.Tween;
import mx.transitions.easing.*;
//画像1枚の横幅を設定
var g_w:Number = 120;
//画像の枚数を設定
var g_n:Number = 7;
//表示する文字列の設定(★オマケ)
var str_arr:Array = ["画像1", "画像2", "画像3", "画像4", "画像5", "画像6", "画像7"];
//文字列を表示するテキストフィールドを作成(★オマケ)
//(本当は好きな場所に手動で「my_txt」を作成する)
createTextField("my_txt", 0, 10, 10, 0, 0);
my_txt.autoSize = "left";
my_txt.border = true;
my_txt.background = true;
//カウンタ用変数
var cnt:Number = 0;
//「my_txt」に文字列を表示(★オマケ)
my_txt.text = str_arr[cnt];
//「L_btn」を非表示にしておく
L_btn._visible = false;
//「R_btn(→ボタン)」クリック時の動作を定義
R_btn.onRelease = function():Void {
//もしカウンタが 画像の枚数 未満であれば
if (cnt<g_n) {
//カウンタに1を加算
cnt++;
//-g_w*cnt に向けて x座標 をTween
var myTween = new Tween(my_mc, "_x", Regular.easeOut, my_mc._x, -g_w*cnt, 3, true);
//L_btnを表示する
L_btn._visible = true;
//なおかつカウンタが 画像の枚数-1になれば
if (cnt == g_n-1) {
//R_btnを非表示にする
R_btn._visible = false;
}
//「my_txt」に文字列を表示(★オマケ)
my_txt.text = str_arr[cnt];
}
};
//L_btnクリック時の動作を定義
L_btn.onRelease = function():Void {
//もしカウンタが 0 より大きい場合は
if (cnt>0) {
//カウンタから1を減算
cnt--;
//-g_w*cnt に向けて x座標 をTween
var myTween = new Tween(my_mc, "_x", Regular.easeOut, my_mc._x, -g_w*cnt, 3, true);
//R_btnを表示する
R_btn._visible = true;
//なおかつカウンタが 0 になれば
if (cnt == 0) {
//L_btnを非表示にする
L_btn._visible = false;
}
//「my_txt」に文字列を表示(★オマケ)
my_txt.text = str_arr[cnt];
}
};
//------------------------------
とりあえずは関係のない「(★オマケ)」部分の動作は無視してください。
動く先の座標を
動いている最中かもしれない(不安定な)「my_mc」を基準にして決定するのではなく,
しっかりと安定した数「-g_w*cnt」で決定するようにしています。
こうすれば見たい画像までイライラせずにスムーズに my_mc を移動させることができます。
※以上のスクリプト
ActionScript 2.0 / Flash Player 6 以上で動作
※後にこのページを見る方がいらした場合の状況説明図↓
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 指定したパスが現URLに含まれていたら特定要素を削除するJavascriptのコードを教えてください 2 2023/04/27 17:58
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- その他(プログラミング・Web制作) uwscとWinShotを使いスクリーンショットを撮る 1 2022/06/30 21:15
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- その他(プログラミング・Web制作) Pythonで会員サイトの自動ログイン ID Nameがない 1 2022/12/16 02:09
- その他(プログラミング・Web制作) uwscのCHKING関数の画像の認識がうまくいかない。 1 2022/06/18 20:55
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
potplayerについて質問です
-
flash (.swf) を編集したい
-
時計がついたスライドショーが...
-
VBAのコンボボックスの年月表示...
-
FLASHでゲームを作っていた人は...
-
この曲はなんでしょう?
-
laptop go2からの買い替え、lap...
-
スクリップト
-
私のコンピューター上のファイ...
-
arduino プログラムについて
-
chrome flash
-
FLASHの再生はできないのでしょ...
-
フラッシュゲームアーカイブ2
-
ウェブサイトで Flash が事実上...
-
Flashコンテンツを使ったWebサイト
-
Flash Playerのサポートが終了
-
Form内のselectを連動させるに...
-
Flashをブロックしないで
-
ダウンロードしたデジブックはa...
-
ad or script について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ボタンの上にカーソルを置いた...
-
記述の無いアクションが動く??
-
PHPでボタンをクリックすると変...
-
ボタンインスタンスにスクリプ...
-
ボタンアクション flash アク...
-
ムービークリップの中にボタン...
-
arduino プログラムについて
-
FLASHで画面の最大化と100%表示...
-
ボタンのカウント数でムービー...
-
ボタンの上に重なっているMCを...
-
メニューの単語が落ちてきてバ...
-
外部SWF読み込み後の座標指定
-
Flashでボタンをクリックすると...
-
「ボタンロールオーバー時のイ...
-
虫眼鏡拡大ムービーの中にボタ...
-
ムービークリップの中のボタン...
-
adobe frash CS5.5について
-
FlashからPHPへの変数の渡し方...
-
的当てゲーム
-
移動位置が狂ってしまう
おすすめ情報