【问题标题】:Flex 3: Embedding MovieClip Symbol to Image Control programmaticallyFlex 3:以编程方式将 MovieClip 符号嵌入到图像控件
【发布时间】:2010-12-11 07:51:22
【问题描述】:

我已经查看了与此相关的所有文档和 Google 结果,并且我认为我的所有设置都正确。我的问题是该符号没有出现在我的应用程序中。我有一个已嵌入到 Flex 组件中的 MovieClip 符号。我需要为我的 dataProvider 中的每个项目创建一个新的 Image 控件,并将这个嵌入符号指定为 Image 的源。我认为这很简单,但显然不是。这是代码的存根:

[Embed(source="../assets/assetLib.swf", symbol="StarMC")]

private var StarClass:Class;

protected function rebuildChildren():void {

    iterator.seek( CursorBookmark.FIRST );

    while ( !iterator.afterLast ) {
        child = new Image();
        var asset:MovieClipAsset = new StarClass() as MovieClipAsset;
        (child as Image).source = asset;

    }
}

我知道孩子正在被创建,因为我可以绘制一个形状并且它会出现。难道我做错了什么?谢谢!

【问题讨论】:

    标签: apache-flex actionscript-3 embed custom-component


    【解决方案1】:

    您应该可以简单地将 child.source 设置为 StarClass:

            child = new Image();
            child.source = StarClass;
    

    更多详情请查看MovieClipAsset Language Reference

    您很少需要自己创建 MovieClipAsset 实例 因为图像相关的属性和 样式可以设置为 图像生成类和组件 将根据需要创建实例。 例如,设置应用程序 这个动画的背景,你可以 只需写以下内容:

      <mx:Application backgroundImage="{backgroundAnimationClass}"/>
    

    【讨论】:

    • 谢谢。我已经尝试过了,但这也不起作用。我之前在 MovieClipAsset 文档中的那个参考。我已经看到,当 Image() 在纯 AS 中声明时 - 而不是在 MXML 文件中,这是正确的语法。我可能是错的,但无论哪种方式它仍然无法正常工作。
    • StarMC 中有什么?您可以添加asset.gotoAndStop(1);在您的原始代码中实例化资产后,将影片剪辑设置为第一帧,然后将其用作图像源。
    • 它是一个带有逐帧动画的 AS3 影片剪辑。符号中没有 ActionScript。我在 ActionScript 中所做的一切似乎都不允许出现此嵌入符号。我在另一个组件中使用了 swf 中的其他几个符号,没有问题。
    猜你喜欢
    • 2010-11-06
    • 1970-01-01
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-03
    相关资源
    最近更新 更多