如何在MXML中从Flash CS导入符号?

时间:2013-02-17 02:45:53

标签: flex flash-cs5 flashdevelop

我正在使用FlashDevelop在Flex中编写移动应用程序,并使用Flash CS6创建可视资源。我在Flash CS6中创建了一个符号,并将其作为AC3导出到SWC中,我将其导入到我的FlashDevelop项目中。然后我为它创建了一个类,如下所示:

package com 
{
import flash.display.Sprite;

  public class volmeter_class extends Sprite
  {
    private var design:volmeter;

    public function volmeter_class()
    {
        trace("I'm a MySymbol instance called", name);
        design = new volmeter();
        addChild(design);
    }     
  }  
}

我现在正在寻求在我的应用页面上显示我创建的符号。要做到这一点,我怀疑我应该以某种方式在我的MXML中导入它,但我不知道如何这样做。有人可以给我一些关于如何开始这样做的提示吗?

1 个答案:

答案 0 :(得分:3)

在Flash Pro中,确保为符号指定AS链接。

Flash symbol

在项目的ActionScript构建路径中使用Flash Pro中发布的SWC,符号可以由AS Linkage实例化。或者,可以从已发布的Flash Pro SWF中嵌入符号。

Pure ActionScript示例:

package
{
    import flash.display.Sprite;

    public class AppExample extends Sprite
    {
        public function AppExample()
        {
            var exampleSymbol:ExampleSymbol = new ExampleSymbol();
            addChild(exampleSymbol);
        }
    }
}

Flex MXML示例:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               creationComplete="creationCompleteHandler(event)">

    <fx:Script>
        <![CDATA[
            import mx.events.FlexEvent;

            protected function creationCompleteHandler(event:FlexEvent):void
            {
                var exampleSymbol:ExampleSymbol = new ExampleSymbol();
                symbol.addChild(exampleSymbol);
            }
        ]]>
    </fx:Script>

    <s:SpriteVisualElement id="symbol" />

</s:Application>

另一种方法是通过链接Flash Pro中的SWF来嵌入符号。

Flex MXML嵌入示例:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark">

    <fx:Script>
        <![CDATA[
            [Embed('assets/library.swf', symbol = 'ExampleSymbol')]
            [Bindable]
            public static var ExampleSymbolClass:Class;
        ]]>
    </fx:Script>

    <s:Image source="{ExampleSymbolClass}" />

</s:Application>