人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

actionscript3.0でread、dataのような命令はあるのでしょうか?
大量のデータを変数で扱いたいです。
詳しい人のみ自分の言葉で説明してください。
(URLを貼る場合はポイント0です)


●質問者: manekinekoo
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
●300ポイント ベストアンサー

Perl の <DATA> (__DATA__) とか、Ruby の DATA (__END__) のようなもの、ということでしょうか。
ActionScript には、そのものズバリの機能はありませんし、ヒアドキュメントもありません。
でも、ヒアドキュメントっぽいことであれば、できなくはないです。

ActionScript には、「XML リテラル」というのがあります。
http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f95.html

ソースの中に XML がいきなり書けちゃう。

var xml:XML =
 <data>
 <list>
 ...
 </list>
 </data>;

大量の文字列が欲しければ、ノードひとつの XML リテラルを書けば手に入ります。

XML オブジェクトは文字列に変換できます。

var xml:XML =
 <data>
 foo
 bar
 ...
 </data>;
var str:String = xml.toString();

中間の変数を無くして、続けて書けます。

var str:String =
 <data>
 foo
 bar
 ...
 </data>.toString();

XML のパースは、テキストノードの前後の空白を取り除いてくれちゃうので、それも入力した通りに欲しければもうひと手間。
http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7e71.html#WS5b3ccc516d4fbf351e63e3d118a9b90204-7e66

XML.ignoreWhitespace = false;
var str:String =
 <data>
 foo
 bar
 ...
 </data>;

暗黙の型変換があるので、toString() は省略できます。

無意味なタグが気持ち悪いのであれば、CDATA セクションを使っても書けます。

var str:String = <![CDATA[
foo
bar
...
]]>;

行単位でデータが欲しければ、String#split を使います。

var arr:Array = <![CDATA[
foo
bar
...
]]>.split(/\r\n/);

for (var i in arr) {
 trace(arr[i]);
}

manekinekooさんのコメント
ありがとうございます。 たぶんそれで大丈夫なんだと思います。 XMLがAS3がよくわってないので理解してみます。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ