dポイントプレゼントキャンペーン実施中!

外部テキストにあるURLを読み込みたいと思っています。
しかし外部テキスト内では「&」で変数宣言を区切りますので、URL中にある「&」文字でデータが区切られてしまいます。どのようにすればURLを1つのデータとして読み込む事ができるのでしょうか?
現在は以下のように読み込む処理のみ行っています。

お手数をお掛けしますがよろしくお願い致します。

・FLASH MX

・アクションスクリプト内容
this.loadVariables("data.txt");
trace(this.data);

・テキストの内容(data.txt)
data=http://aaa.net/aaa/aaa.cgi?mode=link&id=123

A 回答 (1件)

& の代わりに、& のURLエンコード”%26”を挿入してみてください。


例えば、data.txt は

 data=http://***.net/***/***.cgi?mode=link%26id=123

というように書きます。


外部から読み込んだURLでページを開くなど、読んできたテキストを使って何かをする場合は、必ず、読み込みの完了を待ってから次の処理をするようにしましょう。完了する前に先に進むと、開こうとしたページのアドレスが見付からず、読み込みエラーになるなど、不具合の原因になります。

読み込みの完了を検出する方法はいろいろありますが、ここでは、簡単なところで、読み込みが完了したときに発生する data というイベントを利用して確認してみます。
次のようなスクリプトを、フレーム1に設定してみてください。
(↓各行頭に全角のスペースが入っています。コピーする際はご注意ください)

 this.loadVariables( "data.txt" );
 this.onData = function()
 {
  trace( "URL : " + data );
 };

読み込みが成功していれば、「出力」ウィンドウに

 URL : http://***.net/***/***.cgi?mode=link&id=123

と、”&”の位置で分断されることなく表示されます。


読み込みの完了を待つ処理は、今回は本題ではないので簡単にご紹介する程度にさせていただきました。
LoadVars を利用したり、フレーム間をループして変数 data の値を監視するなどの処理を加えることで、通信中に不測のトラブルが起きて読み込みに失敗した場合などにも対応できるようになります。
ちなみに、data は Flash ではキーワードになっていますから、できれば別の変数名を付けた方がいいと思います。


特殊文字を読み込む時の注意点が、Flash のテクニカルノートで詳しく解説されておりますので、よろしければご参照ください。
他の文字のURLエンコードも公開されています。

参考URL:http://www.macromedia.com/jp/support/flash/ts/do …
    • good
    • 0
この回答へのお礼

できました!ありがとうございます!
”URLエンコード”これがキーワードでしたね。
「data」などの予約語についても気をつけます。
読み込み完了処理や参考先URLまで、本当に丁寧なお答えを頂きありがとうございました。とても助かりました。

お礼日時:2005/03/03 17:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!