現在、クイズを作っています。
外部のXMLファイルから問題を読み込み、それをランダムに5問出題させ、さらに重複させないようにしたいのですが、経験不足のため思うように出来ません。
flashファイル
////////////////////////////////////
var a_xml:XML = new XML();
a_xml.onLoad = function()
{
var top:XMLNode = a_xml.firstChild;
for(i = 0; i<top.childNodes.length;i++){
var item:XMLNode = top.childNodes[i];
trace(item.attributes.name);
}
}
a_xml.ignoreWhite = true;
a_xml.load("xml/test.xml");
////////////////////////////////////
XMLファイル test.xml
////////////////////////////////////
<?xml version="1.0" encoding="UTF-8"?>
<items>
<item name="test1" value="0" />
<item name="test2" value="1" />
<item name="test3" value="2" />
<item name="test4" value="3" />
<item name="test5" value="4" />
<item name="test6" value="5" />
</items>
////////////////////////////////////
XMLファイルの読み込みは何とかできたのですが、ここからどうやってランダムに読み込むかが分かりません。
XML要素のnameをランダムで出題したい場合どうしたらいいのですか?
ここから先は、多分Math.randomを使うのだろうというレベルでしか分からないため、なんとかご教授お願いできませんか?
環境はwin,FlashMX2004です。
No.1ベストアンサー
- 回答日時:
ランダムに5問を出題するルール(どのように出題するのか)がわかりませんが,
例えば,
name_txt0 value_txt0
name_txt1 value_txt1
name_txt2 value_txt2
name_txt3 value_txt3
name_txt4 value_txt4
というインスタンス名を持つテキストフィールドを用意して,
[test4 ] [3 ]
[test1 ] [0 ]
[test6 ] [5 ]
[test3 ] [2 ]
[test2 ] [1 ]
のようにランダムな表示をさせたいのでしたら,
次のような感じのスクリプトになると思います。
次のスクリプトはテキストフィールド自体もActionScriptで作成する例です。
------------------------------------------
// XMLインスタンス a_xml の作成
var a_xml:XML = new XML();
// ランダムな数を入れる配列の作成
var randomArr:Array = new Array();
// XML ロード時の動作を定義
a_xml.onLoad = function() {
// firstChild ノードを top とする
var top:XMLNode = a_xml.firstChild;
// topノードのノード数を len に代入しておく
var len:Number = top.childNodes.length;
//ランダム配列に 0, 1, 2, 3, …,len-1 を代入
for (var i:Number = 0; i<len; i++) {
randomArr[i] = i;
}
// 元の配列をランダムシャッフル
for (i=0; i<len; i++) {
// 0 以上 len-i 未満の整数の乱数を取得
var j:Number = Math.floor(Math.random()*(len-i));
// randomArr[len-1-i] と randomArr[j] を入れ替える
var k:Number = randomArr[len-1-i];
randomArr[len-1-i] = randomArr[j];
randomArr[j] = k;
}
// i = 0 ~ 4 でループ
for (i=0; i<5; i++) {
// --- ↓手動で作成する場合は以下不要↓ ---
// テキストフィールド name_txt0~5 を作成
_root.createTextField("neme_txt"+i, i, 10, i*30+10, 140, 20);
_root["neme_txt"+i].border = true;
// テキストフィールド value_txt0~5 を作成
_root.createTextField("value_txt"+i, i+5, 160, i*30+10, 20, 20);
_root["value_txt"+i].border = true;
// --- ↑手動で作成する場合は以上不要↑ ---
// top.childNodes[ランダム] ノードを item とする
var item:XMLNode = top.childNodes[randomArr[i]];
// name_txt0~5 にランダムな name 属性を表示
_root["neme_txt"+i].text = item.attributes.name;
// value_txt0~5 にランダムな value 属性を表示
_root["value_txt"+i].text = item.attributes.value;
}
};
// 余分な余白などを無視
a_xml.ignoreWhite = true;
// 外部XML ファイルのロード
a_xml.load("xml/test.xml");
------------------------------------------
「配列を偏りなくランダムに並替える」
http://www.fumiononaka.com/TechNotes/Flash/FN021 …
Google検索「配列アクセス演算子」
http://www.google.co.jp/search?hl=ja&q=%E9%85%8D …
返事遅れて申し訳ございません。丁寧な解説ありがとうございます。いろいろと試行錯誤しながら徐々に理解できております。参考になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- XML XML同じ名前の要素を自動で集約するツール 1 2022/04/11 09:21
- WordPress(ワードプレス) ワードプレスにて .xmlファイルの使い方をご存知の方、よろしくお願いいたします。 2 2022/09/30 00:55
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
- アプリ Android studio 初心者 Hello Android!しか表示されない 1 2023/08/01 08:47
- JavaScript JavascriptからSQLへ繋ぎ方が分からない 3 2022/07/07 00:27
- アプリ おすすめのパスワード管理アプリを教えてください。(iOSとWindows対応) 4 2023/01/19 02:08
- XML iPhoneでXMLファイルを開くにはどうしたら良いのでしょうか? 1 2022/09/05 18:00
- XML Windowsで見かけるxmlファイルってどういうものですか? 1 2022/06/03 14:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
おもしろフラッシュのサイト名...
-
この曲はなんでしょう?
-
私のコンピューター上のファイ...
-
arduino プログラムについて
-
chrome flash
-
FLASHの再生はできないのでしょ...
-
フラッシュゲームアーカイブ2
-
Flashコンテンツを使ったWebサイト
-
Flashをブロックしないで
-
ダウンロードしたデジブックはa...
-
ad or script について
-
VBAのコンボボックスの年月表示...
-
uwscでExcelに自動記入
-
パソコンのリカバリーについて
-
iPhoneです。 Adobeフラッシュ...
-
ロック画面に天気を表示したい
-
サイト構築の方法を教えてください
-
URLの/以降だけを入力したいです。
-
Adobe(マクロメディア)のFLAS...
-
adobe flash playerは無料です...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ActionScript3.0によるPHPへの...
-
変数名を分割したり結合する方法
-
サムネイルの写真にリンクをつ...
-
マウスの基準点について
-
loaderでflashを読み込んだ際の...
-
配列をソートしたいです
-
XML内のタグの内容を、変数に出...
-
csv読込
-
エラー(型が一致しません。)...
-
VB6でユーザー定義型がNothing...
-
VB.NET の配列の要素数
-
TextChangeイベントが発生しない
-
python: 直角三角形の種類を求...
-
配列の要素番号を取得するには?
-
#define 文
-
c++ cmathとmath.h
-
VBでボタンを押すと画像をラン...
-
重複しない乱数整数を発生させる。
-
ifdefとenum
-
LRESULTとHRESULT
おすすめ情報