Apache flex 在Flex中将精灵添加到画布

Apache flex 在Flex中将精灵添加到画布,apache-flex,sprite,Apache Flex,Sprite,根据要求,我将对问题进行更详细的描述 首先,我有这个MXML: <mx:Panel x="270" y="10" width="690" height="680" id="mainContainerPanel"> <mx:Canvas x="270" y="10" width="670" height="640" id="canvas" initialize="onInit()"> <mx:Script> pro

根据要求,我将对问题进行更详细的描述

首先,我有这个MXML:

<mx:Panel x="270" y="10" width="690" height="680" id="mainContainerPanel">
    <mx:Canvas x="270" y="10" width="670" height="640" id="canvas" initialize="onInit()">
        <mx:Script>
            protected function onInit():void
            {
                spiro = new Spirograph(canvas);         
            }
        </mx:Script>
    </mx:Canvas>
</mx:Panel>
目前,我正在使用一个名为SpriteUIContainer的包装类将所有Sprite对象添加到主容器中:

package includes
{
    import flash.display.Sprite;

    import mx.core.UIComponent;

    public class SpriteUIContainer extends UIComponent
    {       
        public function SpriteUIContainer(sprite:Sprite)
        {
            super();
            this.explicitWidth = sprite.width;
            this.explicitHeight = sprite.height;
            this.x = sprite.x;
            this.y = sprite.y;
            addChild(sprite);
        }
    }
}
其使用方式如下:

private var circCentre:Sprite = new Sprite();
circCentre.x = mainContainer.width / 2;
circCentre.y = mainContainer.height / 2;
circCentre.graphics.lineStyle(3, 0xD0B917); 
circCentre.graphics.beginFill(0xF2DF56, 0.2);
circCentre.graphics.drawCircle(20, 20, 50);
circCentre.graphics.endFill();
mainContainer.addChildAt(new SpriteUIContainer(circCentre), 1);
Circenter精灵从未出现在屏幕上,我不知道如何才能让它出现


非常感谢任何帮助

所说的“附加”是指使用addChild方法向UIComponent添加新精灵吗

若有,;您必须将代码添加到新“精灵”相对于容器中其他对象的大小和位置。在您的示例中没有这样的代码。我建议在updateDisplayList()中实现此代码

有关updateDisplayList()的更多信息,请参阅本文档


如果您需要更多帮助,您必须详细介绍如何将新精灵添加到UIComponent实例;并举例说明如何添加多个

嘿,我现在已经重新写了这个问题,我希望它能帮助我,因为我现在对Flex很困惑。非常感谢一些建议。我放弃了Flex,回到我所知道和喜爱的领域:Flash@AlexW听到这个消息我很难过。我不知道你的技能/知识在哪里;但是,Flex绝对是一个与Flash Pro不同的市场。有很多活动部件需要弯曲;因此,如果您还不熟悉Java、.NET或其他编程语言(以及相关概念),那么就很难进入学习阶段。根据我的要求,使用Flash本身会更好,因为我不是在制作数据驱动的应用程序,而是更加生动。我明白为什么Flex很好,但它不是这个工作的合适工具:)@AlexW无参数。对于一些以动画为中心的作品,我也会认为Flex是一个糟糕的选择。
private var circCentre:Sprite = new Sprite();
circCentre.x = mainContainer.width / 2;
circCentre.y = mainContainer.height / 2;
circCentre.graphics.lineStyle(3, 0xD0B917); 
circCentre.graphics.beginFill(0xF2DF56, 0.2);
circCentre.graphics.drawCircle(20, 20, 50);
circCentre.graphics.endFill();
mainContainer.addChildAt(new SpriteUIContainer(circCentre), 1);