- ベストアンサー
flash ActionScript2.0でtxtファイル内の文字列を置換する方法
- flash ActionScript2.0を使用して、外部で読み込んでいるtxtファイル内の「,」半角カンマの表示をswfファイルで「全角(半角)スペース」に置き換えて表示する方法を教えてください。
- 現在ムービークリップには、onClipEvent (load) {} というActionScriptが記述されており、flash.txtという外部ファイルを読み込んでいます。しかし、txtファイル内の「,」半角カンマを「全角(半角)スペース」に置き換えるためのスクリプトが不明です。
- どのようなActionScriptを使用すれば、txtファイルで表示される「,」半角カンマをswfファイルで「全角(半角)スペース」に置き換えることができるのでしょうか?教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1 です。 > いろんなことをしても、やはり表示が変わりません。 > 「,」のままです。 どういう状況かがよくわかりませんよ。 私は, > ムービークリップに対して、 > onClipEvent (load) { > this.loadVariables("flash.txt"); > } > というActionScriptを記述して、 と書かれていらっしゃることから推測して, _root └スクリプトを書いたのムービークリップ └テキストフィールド(変数名:外部テキストデータと同じ変数名) と推測しました。 つまり, 外部テキスト「flash.txt」のデータ内容が, ○○=123,456,78 であるとするなら, _root └スクリプトを書いたのムービークリップ └テキストフィールド(変数名:○○) という場合, ------------------------------------------------ onClipEvent (load) { this.loadVariables("flash.txt"); } // このムービークリップにデータがロードされたとき onClipEvent (data) { // 変数 ○○ をカンマで分けて全角スペースでつなげる ○○ = ○○.split(",").join(" "); } ------------------------------------------------ という意味のことを書いたつもりです。 これは検証済みです。
その他の回答 (1)
- BlurFiltan
- ベストアンサー率91% (1611/1754)
仮に,「flash.txt」 内のデータが mystr=abc,def,g というものであったとします。 実際は何でも良いですよ。変数名を決めたかったので書いただけです。 全自動で変換&表示させる場合, ムービークリップに書くスクリプトは次のようになります。 ------------------------------------------------ onClipEvent (load) { this.loadVariables("flash.txt"); } // このムービークリップにデータがロードされたとき onClipEvent (data) { // 変数 mystr をカンマで分けて全角スペースでつなげる mystr = mystr.split(",").join(" "); } ------------------------------------------------ 置換の公式のようなものです↓。 // ● を ■ に置換 置換後文字列 = 置換前文字列.split("●").join("■"); 厳密には公式ではありませんし置換という意味のものでもありませんが, 置換の公式のように覚えれば,スルッと使えると思います。 本当の意味は次のようなものです。 置換前文字列.split("●") これで,置換前文字列 を ● でスプリットした配列が得られます。 例: abc●def●g → [abc, def, g] 置換前文字列.split("●").join("■"); これで,スプリットした配列を ■ で連結した文字列が得られます。 例: [abc, def, g] → abc■def■g
お礼
BlurFiltan様 ご返答ありがとうございます。 しくみといたしましてとても分かりやすく 理解できました。 ただ、ムービークリップに対して ------------------------------------------------ onClipEvent (load) { this.loadVariables("flash.txt"); } // このムービークリップにデータがロードされたとき onClipEvent (data) { // 変数 mystr をカンマで分けて全角スペースでつなげる mystr = mystr.split(",").join(" "); } ------------------------------------------------ を記述しても、 表示が変更されません。 いろんなことをしても、やはり表示が変わりません。 「,」のままです。
お礼
BlurFiltan様 ご返答ありがとうございます。 そして、説明不足大変失礼いたしました。 >>いろんなことをしても、やはり表示が変わりません。 >>「,」のままです。 >ういう状況かがよくわかりませんよ。 申し訳ございません。 テキストデータの形式をUTF-8からshiftJISに変更して 表示させたり、Scriptをタイムラインに記述したりしておりました。 (Flash初心者でお恥ずかしいです) 今回、説明いただいた事で、スクリプトはもちろん、 質問の表記方法についても大変勉強させていただきました。 ●表示されなかった理由 わたくしは >_root > └スクリプトを書いたのムービークリップ > └テキストフィールド(変数名:外部テキストデータと同じ変数名) >// このムービークリップにデータがロードされたとき >onClipEvent (data) { >// 変数 ○○ をカンマで分けて全角スペースでつなげる >○○ = ○○.split(",").join(" "); >} 変数○○を外部テキストデータと同じ変数にしなければならないのを、 はじめに回答いただいた中のスクリプトの変数名"mystr"のままにしておりました。 表示されなかったのは、わたくしの理解不足です。 外部テキストデータと同じ変数名を入れたところ、 きちんと 例)ghjkl,qwert「","」 が 例)ghjkl qwert「" "」 に置き換えて表示させることができました。 丁寧なご返答をいただき大変感謝しております。 ありがとうございました。