- ベストアンサー
外部から読み込んだテキストを切り替える方法
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
anzunyaさん、 簡単なAS2.0で説明します。 -外部mess.txtに、例えば、以下のように記載: &mess1=1番目のmess& &mess2=2番目のメッセージです& &mess3=3番目のメッセージと意見です。& &kazu=3& -FLA側の記載内容:第一フレームのscriptレイヤーに記載 //ここから //初期設置領域 var max:Number;//メッセージの数の変数定義 _txt.text = "";//インスタンス名 _txtのダイナミックテキストのロード時の初期値は、ブランク var mess_array:Array = new Array();//配列定義 //System.useCodepage = true;//mess.txtのコードが、UTF-8で記載されてない場合は、これが必要、されていれば、不要 //LoadVarsクラスの設置領域 var lv:LoadVars = new LoadVars(); lv.onLoad = function():Void { mess_array[0] = "";//要素番号0は、以下のfor文では、定義されないので、ここで、ブランクで定義しておく→なくてもいいですが、気持悪い場合は、こうする max = Number(this.kazu);//文字列の数値化 for (var i:Number = 1; i<=max; i++) { mess_array[i] = this["mess"+i];//配列に、外部mess.txtの変数の中身を格納する } pickUp();//外部mess.txtの読み込みが終了したなら、下のカスタム関数を始動させる }; lv.load("mess.txt"); //lv.load("mess.txt?"+getTimer());//サーバーアップ時は、ブラウザーのキャッシュ対策として、こちらを使用する。ローカルでは、エラー発生 function pickUp() {//ごちゃごちゃするので、このように、カスタム関数化して、外出しにしておくといいでしょう。 btn1.onRelease = function():Void { _txt.text = mess_array[1];//配列要素番号の1番(→この場合は、"1番目のmess")を抽出して、_txt.textに代入 }; btn2.onRelease = function():Void { _txt.text = mess_array[2]; }; btn3.onRelease = function():Void { _txt.text = mess_array[3]; }; /*今回は、ボタンが3つですが、多くなった場合は、以下のように、for文を使うほうが良いです for (var i:Number = 1; i<=max; i++) { this["btn"+i].id = i;//iを、動的に生成したプロパティ id に保管 this["btn"+i].onRelease = function():Void { _txt.text = mess_array[this.id];//this.idで配列要素を抽出 }; } */ } //ここまで 以上で、ボタンを押す都度、該当メッセージが表示されます。
お礼
わかりやすい説明をありがとうございます。 こちらの内容で試してみますね!助かりました~。