在flex中使用Actionscript(MovieClip)类

时间:2011-06-14 13:35:03

标签: flex movieclip

我有一段实现MovieClip的Actionscript代码。我似乎无法在我的应用程序中显示它。

我尝试了什么:
1)通过UIObject和Sprite在我的代码中直接使用该类。我可以创建UIObject,添加Sprite,然后添加该类的实例。我的应用程序中没有显示任何内容。

2)将该类作为flex库(swc)。编译器不允许我导入它或将其用作显示对象。

3)将课程作为flex项目(swf)。该文件可以单独运行,但在我尝试在我的应用程序中使用时,会给我相同的“损坏”图标。

我在这里错过了一些关键因素。建议?

编辑:获取要通过库显示的加载项类。它编译为.SWC文件。不幸的是,它使用全屏作为其“舞台”尺寸。我之前遇到的问题是不可见的实际上(或者我认为)它是在显示窗口的右侧。我在绘图程序中放置了断点,可以看到它正在刷新。所以现在我试图让它接受一些维度。

2 个答案:

答案 0 :(得分:2)

  

1)直接在我的代码中使用该类   通过UIObject和Sprite。我可以创造   UIObject,然后添加Sprite   添加该类的实例。没有   显示在我的应用中。

你有没有给出移动剪辑和大小? (宽度和高度)和位置(x和y)?大小通常更重要,因为x和y通常设置为0,0。

2) Putting the class in as a flex library (swc). The compiler won't let me import it or use it as a display object.

您是否将SWC添加到库路径?您确定您的新影片剪辑是否包含在SWC中?

3) Putting the class in as a flex project (swf). The file runs fine stand alone but gives me the same "broken" icon when I try to use it in my app.

听起来你有一个路径问题w /嵌入在这里;但是你必须展示你的代码。

答案 1 :(得分:2)

您可以创建UIComponent而不是UIObject,并将movieclip添加到UIComponent。我一直使用UIComponent而不是UIObject,我的精灵总是正确显示:) mxml和代码如下:

<mx:UIComponent>
    <mx:Yoursprite></mx:Yoursprite>
</mx:UIComponent>

或在actionscript中编码:

private function createSpriteInFlex():void
{
    var _uiComponent:UIComponent = new UIComponent();
    addElement(_uiComponent);

    var _sprite:YourSprite = new YourSprite();
    _uiComponent.addChild(_sprite);
}

修改

你可以像这样添加一条mxml行。

<com:myUIComponent width="100%" height="100%"></com:myUIComponent>

所以myUIComponent实际上是一个可以自己编写代码的类。我将演示如何在下面添加精灵或动画片段:

package com.myUIComponent
{
    public class myUIComponent extends UIComponent
    {
        public function myUIComponent()
        {
            super();

            addEventListener(Event.ADDED_TO_STAGE, init);
        }

        private function init(e:Event):void
        {
            removeEventListener(Event.ADDED_TO_STAGE, init);

            //ADD YOUR SPRITE HERE
            var mySprite:YourSprite = new YourSprite();
            addChild(mySprite);
        }
    }
}