TextField is not DisplayObjectContainer

前回ポストした内容で、TextFieldクラスのgetImageReference()メソッドを使うと、html内にロードしたアセットをDisplayObjectとして取得できるよ!凄いぜ!ってな事を書きました。

そこまでは「へ~スゴイね」という話なんだけど、ここからが問題。

取得したDisplayObjectのparentを調べるとTextFieldクラスが帰ってきます。たとえばこんな感じ

var loader:Loader = tf.getImageReference("img") as Loader ;

//loader.load(new URLRequest("img.jpg"))

function comp(e:Event):void {

var loaderInfo:LoaderInfo = e.target as LoaderInfo

trace(loaderInfo.content.parent.parent); //[object TextField]

trace(loader.parent); //[object TextField]

}

と言うかんじでTextFieldが帰ってくるが、コレが解せない。だって、DisplayObject.parentと言うプロパティはDiplayObjectContainerの筈だ。そしてTextFieldはDisplayObjectContainerは継承していない。

http://livedocs.adobe.com/flex/201_jp/langref/flash/text/TextField.html#propertySummary
http://livedocs.adobe.com/flex/201_jp/langref/flash/display/DisplayObject.html#parent

仮に

DisplayObjectContainer(textField)

と書くとコンパイルエラーが帰ってくる。

SWFの仕様書とか読めば何か書いてあるのかもしれないけど、いや~不思議だ。

追記:

さらっと書いた内容ですが、どうやらFlashPlayerのバグの様です。

Be-Interactiveさんのこちらのエントリに載っけてもらいました。yossy君、多謝。
[バグ] TextField.getImageReference で取得出来る Loader の parent の mouseChildren にアクセスすると FlashPlayer がクラッシュする

前回のエントリーも含めてそれなりに新着情報っぽい感じですが、このバグってどれくらい周知されているのでしょうか。ひょっとして世界初だったりすんのかな。そしたら書いた本人が一番びっくりするかも。Adobeのバグ報告ってどこだっけ?

追記の追記
Adobe bug system には載ってないみたいですね。
http://bugs.adobe.com/jira/secure/QuickSearch.jspa

Trackback

http://mt-sys.kappa-lab.com/mt-tb.cgi/254

Leave your comment :

(いままで、ここでコメントしたことがないときは、コメントを表示する前に承認が必要になることがあります。そのときはしばらくお待ちください。)




RSS + Contuct

  • rss
  • email

Credit

Copyright (C) 2007 kappa-lab.com.
All Rights Reserved.