actionscript2.0とか・・・・
actionscript2.0が嫌いだ。この日記のasはas2のことです。
今日つかまったエラーは・・・せつめいするのもいやになる。
でも、詳細まで調べた。要はこうだった。XMLを読み込む。画像URL、テキストが束になったノードが2つ入っている。画像の読み込みと出力、テキストの読み込みと出力は問題なし。完成、帰宅・・・と思いきや、XML内のテキストが一定量増えると画像が表示されない。これ完全にflash側のバグだろ!と思いながら2時間半デバッグ・・・死にたい。以下の事が分かった。(※このバグに関係ない、asへの罵言も含まれています)
- XML内のテキストが80バイトを超えると、画像が表示されなくなる。ツール、ありがとうございます。
- 画像のロード、MovieClipとしての出力は問題なし。俺のハンドメイドのXMLが壊れてる?小さなテキストファイルを仔細まで見回す。(誤字はない)
- asは無名関数があるのに、(function(){})();的なことはできない。jsに還りたい。
- 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インチ欲しい!