+ -
当前位置:首页 → 问答吧 → [教程]在自定义类中使用Flash组件(swc文件)中包涵的类

[教程]在自定义类中使用Flash组件(swc文件)中包涵的类

时间:2008-12-30

来源:互联网

本文内容测试环境:
Adobe Extension Manager CS4   版本2.1 下载地址:http://www.adobe.com/cn/exchange/em_download/
Adobe Flash CS4 Professional  版本10  下载地址:http://bbs.blueidea.com/thread-2902593-1-7.html

swc 文件格式是Flash 的组件文件(其实也就是一个压缩文件).
一般要使用其中的类.需要在组件面板中将其拉到库中.才能在Flash 文档和文档类中使用.而在有时需要在自己的类中使用组件
中的类.又或许我们会写一些类供他人使用.而又不愿公开其源码(笔者提倡开源).
本文主要作用是用于将自己写的类供他人使用.而不需要公布其源代码.

在这里就不详说如何制作Flash组件了.如果你还不会.可以看此文:http://bbs.blueidea.com/viewthread.php?tid=2758660&highlight=
需要注意一点的是,如果是你自己写的一个类库.也就是说组件主类是不会做任何事情的组件.而只想他人使用组件中所包涵的类.可以这样做:
1.在组件主类中如下所写:
复制内容到剪贴板
代码:
//将你想要发布的类都导入.
import zdm.display.class1;
import zdm.display.class10;
//为什么要继承 Sprite 类? 因为组件主元件所链接的类必需是 Sprite/MovieClip 类或其子类.
public class myClassLibs extends Sprite
{
    public function myClassLibs()
    {
        //然后在构造函数中一一声明.因为编译器会将导入的类而没有使用的类放弃.
        var c1:class1;
        var c10:class10;
    }
}
2.在库元件中链接到 myClassLibs 类(点确定后会看到元件图标为绿色).然后导出 swc 文件.
如果编译器没有提示错误.那就成功了.如图:
02.jpg (39.18 KB)
2008-12-30 19:00


下面就是将完成的组件打包成mxp文件.
要打包成mxp文件(组件的可安装文件).需先制作mxi文件(xml文件格式.描述组件的一些信息.以便扩展管理器管理).
下面是笔者写的一个 Pages 组件的 mxi 文件.
复制内容到剪贴板
代码:
<macromedia-extension name="Pages" version="1.0" type="Library">
    <!-- Describe the author -->
    
    <author name="ChooseFlash" />
    <!-- List the required/compatible products -->
    
    <products>
        <product name="Flash" version="10" primary="true" />
    </products>
    <!-- Describe the extension -->
    
    <description>
    <![CDATA[
    纯代码写的翻页组件(类似 Discuz 论坛的翻页效果)
    ]]>
    </description>
    <!-- Describe where the extension shows in the UI of the product -->
    <ui-access>
    <![CDATA[
    访问此项目: 在需要使用的类或Flash 文档中直接导入该类即可.
    如:  import zdm.display.Pages;
    ]]>
    </ui-access>
    <!-- Describe the files that comprise the extension -->
    
    <files>
        <file name="Pages.swc" destination="$installfolder/Common/Configuration/ActionScript 3.0/libs" />
    </files>
</macromedia-extension>
需注意一点的是,在这里我们就不是将组件显示在Flash 组件面板中了.而是将其安装到Flash的swc库中.
在Flash CS4的安装目录下 -> Common -> Configuration -> ActionScript 3.0 -> libs -> 是Flash的swc库.
所以 destination 属性值不在是"$flash/Component".
$flash 标签是 flash 的配置文件夹.
$installfolder 标签是程序的安装文件夹.
复制内容到剪贴板
代码:
    <files>
        <file name="Pages.swc" destination="$installfolder/Common/Configuration/ActionScript 3.0/libs" />
    </files>
然后双击 mxi 文件就可以将组件打包成 mxp 文件了.这样就可以分发给他人使用了.
当我们下载此类mxp文件时.只要安装后(不需要重启Flash)就可以在自定义类中使用组件中包涵的类了.

在这里笔者提供 Pages 组件来供大家测试. 测试文件.rar (28.75 KB)
测试文件.rar (28.75 KB)
下载次数: 24
2008-12-30 19:00

此附件包涵以下文件:
04.jpg (7.53 KB)
2008-12-30 19:00

Pages 组件中包涵以下元素:
03.jpg (52.58 KB)
2008-12-30 19:00

需先双击mxp文件安装组件后.才能测试.否则会提示找不到该类.
Pages 组件详细:http://bbs.blueidea.com/thread-2903165-1-3.html



本文内容测试环境:
Adobe Extension Manager CS4   版本2.1 下载地址:http://www.adobe.com/cn/exchange/em_download/
Adobe Flash CS4 Professional  版本10  下载地址:http://bbs.blueidea.com/thread-2902593-1-7.html

[ 本帖最后由 chooseflash 于 2008-12-31 00:36 编辑 ]

作者: chooseflash   发布时间: 2008-12-30

哎,还在CS3上徘徊。CS4慢慢来吧

作者: muyuyu   发布时间: 2008-12-30

感谢楼主 ...  今天找一天了..  谢谢... 谢谢

作者: 546506184   发布时间: 2010-10-19