actionscript3.0でread、dataのような命令はあるのでしょうか?

大量のデータを変数で扱いたいです。
詳しい人のみ自分の言葉で説明してください。
(URLを貼る場合はポイント0です)

回答の条件
  • 1人1回まで
  • 13歳以上
  • 登録:2015/11/11 09:16:38
  • 終了:2015/11/15 16:41:50

ベストアンサー

id:a-kuma3 No.1

a-kuma3回答回数4367ベストアンサー獲得回数18032015/11/11 11:04:36

ポイント300pt

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]);
}
id:manekinekoo

ありがとうございます。
たぶんそれで大丈夫なんだと思います。
XMLがAS3がよくわってないので理解してみます。

2015/11/11 11:31:40

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません