pig's diary

何でも忘れるので万年初心者ね

actionscript2.0とか・・・・

actionscript2.0が嫌いだ。この日記のasはas2のことです。
今日つかまったエラーは・・・せつめいするのもいやになる。

でも、詳細まで調べた。要はこうだった。XMLを読み込む。画像URL、テキストが束になったノードが2つ入っている。画像の読み込みと出力、テキストの読み込みと出力は問題なし。完成、帰宅・・・と思いきや、XML内のテキストが一定量増えると画像が表示されない。これ完全にflash側のバグだろ!と思いながら2時間半デバッグ・・・死にたい。以下の事が分かった。(※このバグに関係ない、asへの罵言も含まれています)

  1. XML内のテキストが80バイトを超えると、画像が表示されなくなる。ツール、ありがとうございます。
  2. 画像のロード、MovieClipとしての出力は問題なし。俺のハンドメイドのXMLが壊れてる?小さなテキストファイルを仔細まで見回す。(誤字はない)
  3. asは無名関数があるのに、(function(){})();的なことはできない。jsに還りたい。
  4. asはたくさんのクラス?パッケージ?があるが、その実態はただの関数群にすぎない。関連の関数が、メソッドとして詰め込まれているだけ。それ、クラスじゃないっしょ?

自分のミスでした

動的に生成したMovieClipをステージに書き出す際に、こんなことをしていた。このMCの中に、画像やらテキストやらのMCを入れている。

var set = _root.createEmptyMovieClip("news_set"+ dataArr[3] , this.getNextHighestDepth());

「『"news_set"+ dataArr[3]』というMovieClipをステージに書き出せ」と書いてある。この『〜』の名前はステージ上でユニークでなければならないので、単純に個数のインデックス(0,1,2・・・)を渡すことにしていた。だけど、誤って、XML内のテキストを渡していた。俺はユニークな文字列のかわりに、日本語をIDにしてMCを生成していた。ほんと情けなし。自分のミスでした。

今日学んだこと

actionscript2.0において、動的生成したMovieClipにIDとしてマルチバイト文字列を与えることは可能。する意味ないけど可能。しかし、一定数を超えると、MovieClip内のMovieClipに異変がおきる。例えば画像を読み込んでくれなくなる。シングルバイトでは126バイトから、マルチバイトは82バイトほどからおかしくなる。
javascript 全角半角が混ざっている文字列のバイト数

逆切れ

でも「ちゃんと分かるエラーを出してよ?」というスタンスを人々が決して忘れることはないだろう。あ〜〜・・・↓↓↓↓↓↓
MacBook Air 11インチ欲しい!