Suzukaというソフトを使ってFLASHを勉強しています。
タイムライン上にアクションレイヤーで
n = 10 ;
として 変数n に10を代入しました。
次に スプライトAでボタンを作って、以下のように記述しました。
on(Press){
n = n - 1;
}
私の中では、任意のタイミングでこのボタンを押して、
変数nの値から-1するつもりだったのですが
変数nの値が変わりません。
任意のタイミングでボタンを押して変数nに変化を与えるにはどうしたら良いのでしょうか?
今は以下のようにして変数を-1しています。
//////////////////////////////////////////////////////////
スプライトAに
on(Press){
_root . スプライトB. gotoAndPlay(2);
}
を記述。
スプライトBのタイムライン2フレーム目に
n = n - 1;
を記述。
(一旦別のスプライトBを用意して
そのスプライトBの中のタイムラインに設定したアクションレイヤーに
n = n - 1;
を踏ませています。
//////////////////////////////////////////////////////////
しかしこの方法だと、タイミングが2フレームずれてしまい
厳密にはPressした瞬間ではなくなってしまいますよね。
これ以外にon(Press)などで変数を変える事はできないんでしょうか?
お詳しい方いらっしゃいましたら、ご教授宜しくお願いいたします。
No.1ベストアンサー
- 回答日時:
おそらくこの点↓が問題でしょう。
> 次に スプライトAでボタンを作って、以下のように記述しました。
Suzuka や Parafla! の スプライト というものは
Adobe (Macromedia) Flash で言うところの ムービークリップ(MovieClip) なんです。
で、
そのムービークリップというのはムービーの中のムービーであって「階層」を持つんです。
「ターゲットパス」
http://homepage3.nifty.com/ginga-b/MX/targetpath …
「Suzuka 基礎・基本 ★ ターゲットパス(&階層)」
http://suzupara.iinaa.net/kiso_target.html
ボタン と スプライト とは、階層を持つ持たないが大きな違いです。
(ボタン=階層を持たない ・ スプライト=階層を持つ)
> タイムライン上にアクションレイヤーで
> n = 10 ;
> として 変数n に10を代入しました。
おそらくこの タイムライン上 とは メインのタイムライン,
ActionScript的に言えば _root のタイムラインだと考えられます。
一方
> on(Press){
> n = n - 1;
> }
と書かれたのは スプライトA ですから
つまり スプライトA の中の変数 n から -1 をしようとしているということになります。
階層図で表すと次のようになります。
_root ← n=10
└スプライトA ←nから1を引く
したがって、
_root の変数 n の値を -1 したい場合は、
スプライトAに書くスクリプトを
on(press){
_root.n = _root.n - 1;
}
または
on(press){
_root.n -= 1;
}
または
on(press){
_root.n--;
}
もしくは
on(press){
_parent.n = _parent.n - 1;
}
または
on(press){
_parent.n -= 1;
}
または
on(press){
_parent.n--;
}
もしくは
on(press){
this._parent.n = this._parent.n - 1;
}
または
on(press){
this._parent.n -= 1;
}
または
on(press){
this._parent.n--;
}
のように書く必要があります。
============
なお
on(release) や on(press) など onハンドラ の () 内の最初の文字は小文字です。
Flash Player 7 以上(SWF7 以上)用の SWF では
大文字小文字が厳格に区別されますから
大文字小文字を間違えると正常に動作しない現象が発生するおそれがあります。
レス感謝します。
ご指導頂きましたとおり、
ターゲットパスの指定により間違いをしていたようです。
改めてスクリプトを書き直して見た所、
私が希望した通りの動きをしてくれました。
当方まだASを作る基礎が出来て無いため、初歩的な部分で質問申し訳ありませんでした。
BlurFiltan様には過去にも何度も初歩的な質問にも関わらず、ご教授頂き大変感謝しております。
ありがとうございました<(__)>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミング誰か教えてくれませんか 3 2022/05/13 17:27
- Visual Basic(VBA) VBA 画面上のカーソルに文字数字を入力するコードを教えて下さい 1 2022/10/30 10:31
- C言語・C++・C# このプログラミング誰か教えてくれませんか 2 2022/05/14 09:45
- マウス・キーボード キーボード設定で困っています。長文です。 2 2022/12/10 12:44
- その他(暮らし・生活・行事) Coke ONスタンプのスプライトをゲットする事は無理ゲーですか? 1 2023/03/05 23:37
- Excel(エクセル) Excel 条件付き書式について 1 2022/12/14 20:38
- Facebook 他人のおすすめ記事 1 2022/04/03 05:20
- PHP csvファイルについて教えて下さい。 2 2023/04/01 19:59
- レトロゲーム ファミコンのインベーダー。なぜ左右に動けるのか? 1 2022/07/05 14:19
- Ruby 初心者プログラミング 3 2022/10/12 11:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C++インタプリタを探してます
-
ADに参加していないPCからADサ...
-
python ボタンを押すと複数の関...
-
now loding.......
-
AS3 MC内ボタンクリックでシー...
-
五芒星は、悪魔崇拝とどういう...
-
シンボル化解除の方法
-
漢字入力した値のカタカナ変換...
-
photoshopで書いた四角の枠の中...
-
変数に256文字以上のテキストを...
-
【ExcelVBA】ファイル名をセル...
-
アクションスクリプト2.0 奇数...
-
OpenGLで背景をグラデーション...
-
別のアプリケーションのテキス...
-
RPG(AS400)の本、サイトってあ...
-
ダブルクリックと2回クリックの...
-
VBAで改行の入ったデータの正規...
-
Motifのイベントの制御について...
-
テキストボックスの中身をリセ...
-
DataTableの件数を取得したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python ボタンを押すと複数の関...
-
else if文の順序を変えることに...
-
四乗根を英語で言うと・・・
-
pythonの画像の貼り付けについて
-
PYTHONのtkinterについて
-
PythonでSetWindowPosを使うに...
-
node* ってなんなのでしょうか?
-
SNMPの標準MIBについて
-
ADに参加していないPCからADサ...
-
Pythonのtkinterについて
-
C++インタプリタを探してます
-
Flash Liteのムービークリップ...
-
HTMLからFLASHに変数を送り、内...
-
now loding.......
-
変数名に変数を使う
-
当たり判定で一度だけ音をなら...
-
FLASHで「かるた」を作りたいの...
-
3.0の絶対パス
-
脱出ゲームを作るときのアクシ...
-
2つのMC(ドラッグで移動可能...
おすすめ情報