在 flex 中使用 Actionscript (MovieClip) 类

Posted

技术标签:

【中文标题】在 flex 中使用 Actionscript (MovieClip) 类【英文标题】:Using Actionscript (MovieClip) class in flex 【发布时间】:2011-09-14 17:15:16 【问题描述】:

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

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

2) 将类作为 flex 库 (swc) 放入。编译器不会让我导入它或将它用作显示对象。

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

我在这里遗漏了一些关键因素。有什么建议吗?

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

【问题讨论】:

+1 告诉我们您尝试了什么。 我希望实现某种形式的“积云标签云”。它是作为 WP 插件编写的,但它是开源的,所以也许我可以调整它。 一切正常。它是你的代码是错误的。在简单的测试中尝试它并从那里开始工作。发布您偶然发现的任何代码。 【参考方案1】:

您可以创建一个 UIComponent 来代替 UIObject 并将影片剪辑添加到 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  ></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);
        
    

【讨论】:

作为在本地使用该类的一部分进行了尝试。向我的页面添加了一个 UIComponent,然后添加了 Sprite,最后添加了 MovieClip。似乎可以进入,但没有显示任何内容。 我曾假设——也许他错误地认为他对 UIObject 的引用是 UIComponent 的错字;基于快速搜索,UIObject 是 Fl​​ex 1.5 的一部分;但 Flex 2 或更高版本没有显示链接。 正常情况下应该可以。您是否尝试过编码方法或 mxml 方法?我将用另一个(编码)示例更新我的帖子。【参考方案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.

听起来您在此处嵌入有路径问题;但你必须显示你的代码。

【讨论】:

MovieClip 有大小和位置。从外部文件(无论是 SWF 还是 SWC)添加时,我看到它已定位但不会绘制。 @ethrbunny 请出示您的“添加”代码。你是嵌入吗?还是使用 SWFLoader?还是别的什么?

以上是关于在 flex 中使用 Actionscript (MovieClip) 类的主要内容,如果未能解决你的问题,请参考以下文章

如何以正确的方式在 Actionscript 3 / Flex 3 中嵌入图像?

flex:在桌面应用程序中的 ActionScript 和 JavaScript 之间进行通信

如何使用非 MXML 而是 Actionscript 在 Flex 中创建动态状态并为其添加按钮?

在 Flex/Actionscript 中捕获视频缩略图

GET请求Flex / Actionscript 3

在 ActionScript 和 Flex 中计算文本宽度