在 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 是 Flex 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 之间进行通信