`
flyinglife
  • 浏览: 131900 次
社区版块
存档分类
最新评论

swc内部构造探秘初步

    博客分类:
  • flex
阅读更多

SWC是flex的库文件,对应于Java的jar文件。

和jar文件一样,SWC文件也是一个简单的ZIP文件。我们可以用7zip等解压缩工具打开它。

 

SWC文件的构造如下所示

SWC

-------catalog.xml

-------libary.swf

-------locale目录(可选)

等等

 

其中catalog.xml描述了swf里的类信息。

 

一个简单的catalog.xml可能包含下列信息:

 

版本信息:

 

Xml代码 复制代码

<versions>
  <swc version="1.2" /> 
  <flex version="3.2.0" build="3958" /> 
</versions>

 

feature信息,尚未了解其中tag代表的含义

 

Xml代码 复制代码

 

<features>
  <feature-script-deps /> 
  <feature-components /> 
  <feature-files /> 
</features>

 

 

libraries标签代表SWC中所包含的swf文件,典型的文件名是library.swf,script标签代表了用斜杠分割的类名。

 

<libraries>
<library path="library.swf">
<script name="mx/core/mx_internal" mod="1225427288988" signatureChecksum="2693670951">

 

 上述script的一个典型格式如下

Xml代码 复制代码

 

<script name="com/test/Employee" mod="1228811323437" signatureChecksum="185354909">
  <def id="com.test:Employee" /> 
  <dep id="com.test:Base" type="i" /> 
  <dep id="com.test:IEmployee" type="i" /> 
  <dep id="AS3" type="n" /> 
  <dep id="mx.collections:ArrayCollection" type="s" /> 
  <dep id="com.test:DynamicClass" type="s" /> 
  <dep id="mx.collections:ArrayCollection" type="e" /> 
  <dep id="trace" type="e" /> 
  <dep id="com.test:DynamicClass" type="e" /> 
</script>

 

def标签代表了Actionscript3格式的类名,dep标签代表了这个类所依赖的其他类,我们看到有不同的type,很显然i代表inheritance, n代表namespace, s所指的class都是我在这个Employee类中所使用的其他类。 而e我还不是很了解所代表的意思。

 

 

keep-as3-metadata所指代的应该是类的默认的metadata

 

Xml代码 复制代码

 

<keep-as3-metadata>
  <metadata name="Managed" /> 
  <metadata name="ChangeEvent" /> 
  <metadata name="Transient" /> 
  <metadata name="NonCommittingChangeEvent" /> 
  <metadata name="Bindable" /> 
</keep-as3-metadata>

 

digiests标签显然代表这个swf文件的SHA-256检验值。

 

Xml代码 复制代码

 

<digests>
  <digest type="SHA-256" signed="false" value="319d1e313b334928de34eb5c655fecf3a035d989fb8855c9c5c77780cfb7c26b" /> 
</digests>

 

files标签标示了在SWC中的一些资源文件。

Xml代码 复制代码

 

<files>
  <file path="locale/en_US/collections.properties" mod="1225427279566" /> 
</files>

 

 

附录:

这个Employee.as的内容

 

package com.test
{
	import mx.collections.ArrayCollection;
	
	public class Employee extends Base implements IEmployee
	{
		public function read():void{
			var col:ArrayCollection = new ArrayCollection();
			trace("read");
		}
		
		public function Employee()
		{
			var dc:DynamicClass = new DynamicClass();
		}

	}
}

 

分享到:
评论

相关推荐

    swc内部类型比对工具

    很方便地比对两个swc素材文件内部类进行对比,特别是游戏的ui、窗口要换风格时,只要前后类名和内部层次属性一致就可以不用修改原来的代码就可以直接使用,目前只支持swc,swf格式的对比以后再更新。内附源码和air...

    01_SWC应用层组件设计详解.pdf

    5. SWC内部结构:这部分内容可能讨论SWC的内部工作原理,包括它的主要功能块、数据处理流程、状态机设计等。SWC内部结构的设计直接关系到软件组件的效率和可靠性。 6. RTE事件:在AUTOSAR中,RTE(运行时环境)管理...

    flexpaper2.0.6.SWC

    2.0.6 版本的 SWC 文件是 FlexPaper 的一个组件,它是Adobe Flex开发中的一个库,用于集成到Flash应用程序或Flex项目中。SWC(Software Component)是一种归档文件格式,包含ActionScript类、资源和其他组件,使得...

    playerglobal.swc 13.0

    playerglobal.swc 13.0

    flex 使用swc 包

    在Flex中,SWC文件扮演着与Java中的JAR文件相似的角色,它们是编译后的库文件,包含了可重用的代码、组件或者资源。SWC文件可以被多个Flex项目共享,从而提高开发效率和代码复用性。 标题"flex使用swc包"指的是在...

    starling.swc

    2. "catalog.xml" - 这是SWC文件的元数据文件,它描述了SWC内部的结构,包括类、资源和其他元信息。开发工具会读取这个XML文件来了解如何正确地导入和使用SWC中的内容。 总的来说,Starling.swc是Starling框架的一...

    playerglobal.swc 10.1

    《深入解析FlashDevelop中playerglobal.swc 10.1的重要性及使用》 在Adobe的Flash开发环境中,playerglobal.swc文件扮演着至关重要的角色。它是一个包含Flash Player运行时库的组件,提供了与ActionScript 3.0交互...

    flv.swc播放器

    flv.swc播放器

    flexlib.swc

    通过导入Flexlib.swc,开发者可以直接使用其内部的工具和类,无需从零开始编写大量基础代码。 二、核心组件与功能 1. UI组件:Flexlib.swc提供了丰富的用户界面组件,如高级数据网格、图表、进度条等,这些组件都...

    playerglobal.swc(11.3)

    playerglobal.swc(11.1)

    ExportSWC4.2

    《ExportSWC4.2:深入理解SWC文件与FlashDevelop插件的使用》 在Adobe Flash的开发环境中,SWC(Software Component)文件是一种重要的资源格式,它用于存储类库、组件、资源等,方便在多个项目之间共享。本文将...

    flexbuilder打包swc

    3. **组织类结构**:为了保持良好的代码组织,你可以将相关的类放在不同的目录下,这在打包成SWC时会保留这种结构。 4. **设置库属性**:在项目属性中,转到"Flex Build Path",然后点击"Library Path"选项卡。在...

    flex osmf.swc

    Flex OSMF.swc 是一个重要的组件库,它属于Apache Flex SDK的一个组成部分,版本为4.14.1。OSMF(Open Source Media Framework)是Adobe开发的一个开源媒体框架,用于处理多媒体内容,如视频和音频,在Flex应用程序...

    playerglobal.swc 11.5

    the playerglobal.swc to target the 11.5 APIs (SWC, 343KB)

    SWC项目开发文档1

    本项目开发文档,编号为SWC2021-T20210533,由花生队——落笔云烟Magpie’s Pen团队编制,旨在阐述第十四届全国大学生软件创新大赛中的SWC项目。该文档详细介绍了项目的背景、定位、方案、目标、价值以及详细的开发...

    FlashDevelop导出SWC

    之前一直有用FD(FlashDevelop)的swc导出工具,今天一同事问起,顺便在这里推荐给大家。 在http://sourceforge.net/projects/exportswc/ 已经是开源的项目了,有兴趣可以看看源代码的。 只要你安装了Flash...

    flex Cairngorm.swc

    cairngorm.swc供需要的朋友急用

    away3d 4.1.0 swc

    Scene Graph是Away3D组织3D对象的方式,允许开发者通过层次结构来管理和操作场景中的元素。Camera类提供了视角控制,而Light类则负责模拟光照效果。Material和Texture用于定义物体表面的外观,Geometry类则包含了...

    spring actionscript 必须的.swc包

    而Cairngorm则提供了结构化的开发模式,使得团队协作更为高效。同时,FlexUnit保证了代码的质量,AS3 Commons库则提供了丰富的工具和功能,让开发过程更为便捷。 总之,这个压缩包是一个完整的开发环境,适合那些...

    Autosar SWC Parameter Test

    1. 参数定义:在AUTOSAR中,SWC通过参数与外界交互,参数可以是输入、输出或内部配置数据。参数定义包括其数据类型、名称、大小、访问权限等,这些信息通常存储在ARXML文件中。 2. 参数测试的重要性:参数测试是...

Global site tag (gtag.js) - Google Analytics