- ベストアンサー
actionscriptの記入の仕方で、わからないところがあります。
- actionscriptの記入方法について質問があります。
- 変数nが数秒おきに1つずつ増え、4までいったら1に戻る動作を実装したいです。
- btnを押すとnの値に応じて異なるリンク先に遷移する機能を実現したいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
var urlList:Array=new Array() urlList.push("http://aaaaaaa.com/") urlList.push("http://bbbb.info/") urlList.push("http://ccc.co.jp/") urlList.push("http://ddddd.jp/") btn.onPress = function() { for (i=1; i<=4; i++) { if (n == i) { getURL(urlList[i-1]); } } }; 配列でもいいんならこれで大丈夫だと思います
その他の回答 (2)
- H240S18B73
- ベストアンサー率65% (190/288)
#1です 勘違いしてたかもしれません とりあえずnという変数が数秒毎に 変わる処理ってのは先にあって そのなかでこういうボタンの処理があり わざわざif(n==1)なんて回りくどい事してるのは iの1から4の時にそれぞれにしたい処理が他にあるからとか 勝手に思ってたんですがもしかして ここでnの数秒毎の更新もしようとしてたんですか? としたら#1のは忘れてください #2の方が詳しく解説されてくれてるんで なにもいうことないので、以下オマケです ただ数秒毎に行き先のURL変えたいだけなら 例えば4秒毎なら btn.onRelease=function(){getURL(["xxx.html","xxx.html","xxx.html","xxx.html"][(Math.floor(getTimer()/4000)%4])} とかでも ただの変数削減、行数削減です 一回しか使わない値には変数用意したくない 個人的な趣味みたいなもんですから流してください
- BlurFiltan
- ベストアンサー率91% (1611/1754)
ご質問で書かれていらっしゃるスクリプト, 変数と文字列の区別ができていない。 「数秒おき」と言いながら for文 で高速ループさせている。 など,無茶苦茶ですね...(苦笑)。 そういう状況でいきなり「配列」などを持ちだしても意味がわからないかもしれませんが, URLデータの部分に「配列」を使うことが多いのでその方法を書きます。 //---------------------------- // urlArr という配列を作成 var urlArr = new Array(); // urlArrの各要素に URL をセット urlArr[0] = "aaaa.html"; urlArr[1] = "bbbb.html"; urlArr[2] = "cccc.html"; urlArr[3] = "dddd.html"; // 数秒を設定(例:2000ミリ秒(2秒)) var msec = 2000; // 切り替わる数の初期化 var n = 0; // 数値を切り替える関数 changeNum を定義 function changeNum() { // もし n の値が 配列の要素数-1 未満であれば if (n<urlArr.length-1) { // n の値に1を加算 n++; // そうでない場合は } else { // n の値を 0 に戻す n = 0; } } // 設定秒数間隔で関数 changeNum を実行 myID = setInterval(changeNum, msec); // 「btn」プレス時の動作を定義 btn.onPress = function() { // urlArr[n] を出力窓に出力 trace(urlArr[n]); }; //---------------------------- ・ActionScript 1.0 ・Flash MX 以上(MX,MX2004,8,CS3,CS4)で作成可 ・Flash Player 6 以上用 SWF パブリッシュで使用可 とりあえず上のスクリプトをコピペして, 「制御」→「ムービープレビュー」をすると動作確認できると思います。 上のものは trace 確認するだけのものなので, 実際に aaaa.html などのファイルは用意しなくて良いです。 最初の各URLを実存するものに書き換えて, 最後の, // 「btn」プレス時の動作を定義 btn.onPress = function() { // urlArr[n] を出力窓に出力 trace(urlArr[n]); }; の部分を // 「btn」クリック時の動作を定義 btn.onRelease = function() { // urlArr[n] を同窓で開く getURL(urlArr[n]); }; などのように変更してもらうと使えると思います。 ※getURLのように大きな(重要な)動作をさせるときは 通常 onPress ではなく onRelease を使うと思う。