読者です 読者をやめる 読者になる 読者になる

AOContainerを触ってみてるけど…

どっちもdrawCircleしてるのにAOContainerで生成したSpriteは四角を描いている…
これどういうことだろ

ソース

package etude
{
    include 'import.as';
    import org.libspark.aocontainer.AOContainer;
    import org.libspark.aocontainer.AOContainerFactory;
    public class Etude extends Sprite
    {
        public function Etude()
        {
            stage.scaleMode = StageScaleMode.NO_SCALE;  // 拡大縮小の無効
            stage.align = StageAlign.TOP_LEFT;          // 配置を左上に
            stage.addChildAt( new BackGroundA(), 0);    // 背景の追加
            
            var aoContainer:AOContainer = AOContainerFactory.create(<objects>
                <object name="s" class="flash.display.Sprite"/>
            </objects>);
            
            // AOContainerから
            var s:Sprite = Sprite( aoContainer.getObject( 's'));
            with( s) {
                x = 50;
                y = 50;
                graphics.beginFill( 0);
                graphics.drawCircle( 0, 0, 30);
                graphics.endFill();
            }
            addChild( s);
            
            // 普通に生成
            var s2:Sprite = new Sprite();
            with( s2) {
                x = 150;
                y = 50;
                graphics.beginFill( 0);
                graphics.drawCircle( 0, 0, 30);
                graphics.endFill();
            }
            addChild( s2);
        }
    }
}

追記

どうやら自動インジェクションがSpriteインスタンスのプロパティに働いていたようです。
yossyさんに回答をもらいました。

調べてみましたが、どうやら「s」のプロパティ

* hitArea
* focusRect
* opaqueBackground
* mask

に対して、「s」自身が自動でインジェクションされているのが原因のようです。
かなりバグっぽい動作ですが...。

とりあえず、

として、自動インジェクションを外せば解決します。

(フォーラム - Spark project - AOContainerから生成したSpriteがおかしい?)