• 締切済み

adobe edge animateのアクション

adobe edge animateであるエレメントのアクションを開くでmouseoverを選択して開いて // マウスがオブジェクトに重なったときに実行されるコードを挿入します var a=0; if(a=0){ sym.play("k_click"); a=1; } といったコードを記入したのですが、エレメントをマウスオーバーした時一度のみsym.play("k_click");を実行するという事をしたいのですが、うまくいきません。 どのようにしたらよいでしょうか?

みんなの回答

回答No.1

adobe edge animateこのソフトを知らないのですが。 プログラマーなので、回答しますが、 var a=0; if(a=0){ sym.play("k_click"); a=1; } 最初にこのコードを実行したら、a=0を実行せよ。 と書いているので、2度目にも、a=0なので、常に、 中の、 sym.play("k_click"); は実行されている。 ってのが、問題なのではないですか? var a=0 をグローバル側に配置しておけばOKです。 その後リスナー関数mouseoverの中では、 変数をいきなり使えばOK で、テクニックなのですが、 最初0ではなく、1にするといいです。 グローバル定義のほうで、var a=1; /* 0以外なら何でもいい */ リスナーでは、 if (a) { /* 処理 */ a=0; } 値のチェックをしないで置くという感じで。 なぜかというと、後で、3回まで音を鳴らしたい?ってときは、 グローバル側で var a=3; として、 リスナー側を if (a) { /* 処理 */ a--; } に書き換えるだけで対応できるのと、 これらの何回まで?とかの値を一箇所に集めるほうが 管理しやすく、バグが出にくいからです。 <長くプログラムをすれば、なれますよ

関連するQ&A