[说明: 本文为 http://www.smithfox.com/?e=42 原创, 转载请注明原文, 谢谢]
因为机器不能装Flash Builder,只能用FlashDevelop,所以必须要研究这个(真的很烦呀)。还是Flash Builder好呀(不过要钱)。
FlashDevelop不能建立Library工程, 有人做了一个插件可以导出swc文件, 在FD界可谓小有名气。
它就是 Export SWC。不过非常遗憾,这个插件不支持SWC manifest的配置(它菜单的tooptip显示的manifest指的是它自己生成的 编译配置文件 obj\xx.flex.compc.xml ).
还是自己动手改造吧.
研究发现这个插件的Build All动作先是生成编译配置文件 obj\xx.flex.compc.xml, 然后再调用 compc.exe -load-config+="xxx\obj\xxx.flex.compc.xml" . 所以我们只需要改造这个配置文件. 并且 以后每次都只能调用 Compile Targets, 以避免插件重新生成配置文件覆盖了修改(这个很不爽).
主要改造如下 (注意看注释):
<?xml version="1.0"?>
<flex-config xmlns="http://www.adobe.com/2006/flex-config">
<output>D:\workspace\flex_workspace\smf\.\bin\smf.swc</output>
<use-network>true</use-network>
<target-player>10.1</target-player>
<warnings>true</warnings>
<benchmark>false</benchmark>
<compiler>
<accessible>false</accessible>
<allow-source-path-overlap>false</allow-source-path-overlap>
<optimize>true</optimize>
<strict>true</strict>
<es>false</es>
<show-actionscript-warnings>true</show-actionscript-warnings>
<show-binding-warnings>true</show-binding-warnings>
<show-unused-type-selector-warnings>true</show-unused-type-selector-warnings>
<use-resource-bundle-metadata>true</use-resource-bundle-metadata>
<verbose-stacktraces>false</verbose-stacktraces>
<source-path>
<path-element>d:\workspace\flex_workspace\smf\src</path-element>
</source-path>
<!-- namespaces 是我手动增加的, 还必须要将flex sdk的带上, 否则因为覆盖了SDK默认的flex-config.xml中的
namespaces项, 就没有了默认的namespace声明,编译会报错。
${flexlib}变量, 编译器认识, 会自动定位到Flex SDK home的frameworks目录
-->
<namespaces>
<namespace>
<uri>http://ns.adobe.com/mxml/2009</uri>
<manifest>${flexlib}/mxml-2009-manifest.xml</manifest>
</namespace>
<namespace>
<uri>library://ns.adobe.com/flex/spark</uri>
<manifest>${flexlib}/spark-manifest.xml</manifest>
</namespace>
<namespace>
<uri>library://ns.adobe.com/flex/mx</uri>
<manifest>${flexlib}/mx-manifest.xml</manifest>
</namespace>
<namespace>
<uri>http://www.adobe.com/2006/mxml</uri>
<manifest>${flexlib}/mxml-manifest.xml</manifest>
</namespace>
<!-- 这个是我自己的namespace -->
<namespace>
<uri>http://www.smithfox.com</uri>
<manifest>D:\workspace\flex_workspace\smf\src\manifest.xml</manifest>
</namespace>
</namespaces>
</compiler>
<!-- 这个也是新增加的 -->
<include-namespaces><uri>http://www.smithfox.com</uri></include-namespaces>
<include-classes>
<class>com.smithfox.components.C1</class>
<class>com.smithfox.components.C2</class>
<class>com.smithfox.components.C3</class>
</include-classes>
</flex-config>
还有一种方法,就是干脆不用这个插件,写Ant脚本直接编译:
build.xml 直接放在项目根目录,注意看注释
<?xml version="1.0"?>
<!--
所用到的参考网址:
http://hi.baidu.com/liyunluck/blog/item/cc5692ccd9863d35b700c845.html
http://livedocs.adobe.com/flex/3/html/help.html?content=compilers_22.html#250507
http://www.oreillynet.com/pub/a/oreilly/digitalmedia/helpcenter/flex3cookbook/chapter21.html
http://ant.apache.org/manual/Tasks/pathconvert.html
http://ant.apache.org/manual/Types/mapper.html
-->
<project name="smf.swc" basedir="." default="dist">
<!-- 已经有了 ant 默认的 basedir, 就不要再创建什么 project.dir 之类的了 -->
<property name="name" value="${ant.project.name}"/>
<!-- 因类compc认死了这个名字,所以请不要改FLEX_HOME这个名字了 -->
<property name="FLEX_HOME" value="D:\flash\flex_sdk_4.1.0.16076_mpl" />
<!-- 为了不再创造新的名字,就沿用Flex SDK中的flex-config.xml中的flexlib变量名, 指的都是一个目录 -->
<property name="flexlib" value="${FLEX_HOME}\frameworks" />
<!-- 这个是flex做的ant插件,必须先加载 -->
<taskdef resource="flexTasks.tasks" classpath="${FLEX_HOME}\ant\lib\flexTasks.jar" />
<property name="output.file" value="${name}" />
<target name="dist" depends="clean, compc" />
<!-- 遵循FlashBuilder和FlashDevelop的目录结构, 就用bin目录作为output所在的目录 -->
<target name="clean">
<delete dir="${basedir}\bin" failonerror="true"/>
<mkdir dir="${basedir}\bin"/>
</target>
<target name="compc">
<!-- 包含所有文件, 而不仅仅是as文件, 还包含了mxml文件和图片文件 -->
<fileset dir="${basedir}\src" id="sources">
<include name="**\**"/>
</fileset>
<!-- 遍历src目录下的所有as和mxml文件, 以生成 include-classes列表,
最终是类似于 'com.smithfox.class1 com.smithfox.class2' 的以空格隔开的字符串
这个ant task比较难理解, 相比网上写的, 我加了mxml文件的类名转换, 否则mxml将不会编译
-->
<pathconvert
property="included.classes"
pathsep=" "
dirsep="."
refid="sources">
<map from="\" to="/"/>
<map from="src\" to=""/>
<mapper>
<chainedmapper><globmapper from="${basedir}\*.mxml" to="*"/></chainedmapper>
<chainedmapper><globmapper from="${basedir}\*.as" to="*"/></chainedmapper>
</mapper>
</pathconvert>
<!-- 打印到screen, 以使确认一下, 如果太多,可以删除这行 -->
<echo message="${included.classes}" />
<!--
<compc output="${basedir}\bin\${output.file}"
include-classes="${included.classes}"
optimize="true"
benchmark="true"
strict = "true"
debug="false"
as3="true"
actionscript-file-encoding = "utf-8"
allow-source-path-overlap = "true"
use-resource-bundle-metadata = "true"
>
-->
<compc output="${basedir}\bin\${output.file}"
include-classes="${included.classes}"
>
<!-- 源文件所在路径 -->
<source-path path-element="${basedir}\src" />
<!--如果类库做了国际化,那么需要引入国际化资源文件,
也就是工程目录\locale\下面的所有资源文件(类型为.properties)-->
<!--
<source-path path-element="${basedir}\locale\en_US"/>
<source-path path-element="${basedir}\locale\zh_CN"/>
-->
<!--
需要指定引用图片的资源文件,否则在编译好的mx文件夹下的所有图片都是0字节,
上面这句话, 是保留自原作者的, 但是我将其comment, 没有出现什么问题
-->
<!--
<source-path path-element="${FLEX_HOME}\frameworks\projects\framework\src"/>
-->
<!-- List of SWC files or directories that contain SWC files. -->
<!-- 这里可以指定类库文件的目录
我没有用到3rd lib, 同时我也将FLEX_HOME也comment也,一切都正常
-->
<!--
<compiler.include-libraries dir="${FLEX_HOME}" append="true">
<include name="/frameworks/libs/*.swc"/>
</compiler.include-libraries>
<compiler.include-libraries dir="." append="true">
<include name="/lib/*.swc" />
</compiler.include-libraries>
-->
<!-- 下面是声明SDK 的manifest和自己的manifest
SDK的manifest必须要加, 否则编译报错
-->
<namespace uri="http://ns.adobe.com/mxml/2009" manifest="${flexlib}/mxml-2009-manifest.xml" />
<namespace uri="library://ns.adobe.com/flex/spark" manifest="${flexlib}/spark-manifest.xml" />
<namespace uri="library://ns.adobe.com/flex/mx" manifest="${flexlib}/mx-manifest.xml" />
<namespace uri="http://www.adobe.com/2006/mxml" manifest="${flexlib}/mxml-manifest.xml" />
<namespace uri="http://www.smithfox.com" manifest="${basedir}\src\manifest.xml" />
<include-namespaces uri="http://www.smithfox.com" />
</compc>
</target>
</project>
[说明: 本文为 http://www.smithfox.com/?e=42 原创, 转载请注明原文, 谢谢]
分享到:
相关推荐
之前一直有用FD(FlashDevelop)的swc导出工具,今天一同事问起,顺便在这里推荐给大家。 在http://sourceforge.net/projects/exportswc/ 已经是开源的项目了,有兴趣可以看看源代码的。 只要你安装了Flash...
ExportSWC4.2插件的出现,解决了手动创建和管理SWC文件的繁琐问题。这款插件专为FlashDevelop集成开发环境(IDE)设计,它提供了一种便捷的方式来导出项目中的类库为SWC文件。FlashDevelop是一款免费、开源的...
Flash Develop内置了强大的调试器,支持断点、单步执行、变量查看和性能分析等功能,使开发者能深入理解代码运行过程,快速定位和解决问题。与Adobe Flash Player和独立的AIR运行时紧密集成,使得调试过程更加顺畅。...
你是否在为看不到swc文件的源码而感到发愁,你是否曾因为解压swc只看到swf而感到郁闷,现在你...所有问题,FlashDevelop,绝对是个好软件,强大的AS2及AS3提示功能,强大的SWC文件查看功能,这个小小的软件就能轻松解决
例如,“lj解决了Flash Builder无法生成swc的问题.txt”可能包含了开发者在遇到这类问题时的解决方案。这可能涉及到清理项目、检查编译设置、更新Adobe AIR或Flash Player SDK,或者重新安装FlashBuilder等方法。 7...
### FlashDevelop学习教程知识点梳理 #### 一、安装与配置 **1.1 FlashDevelop的安装** - **必备条件**: - .Net Framework 2.0 或更高版本。 - JDK 1.5。 - Flex SDK 3.0。 - **安装提示**: - 在安装过程...
### FlashDevelop + FlashPlayer11(Molehill) + Away3D 4.0 Alpha 配置详解 #### 一、前言 随着3D技术在Web领域的应用日益广泛,Adobe Flash平台也推出了针对3D图形处理的支持。其中,FlashPlayer11通过引入代号为...
《深入解析FlashDevelop中playerglobal.swc 10.1的重要性及使用》 在Adobe的Flash开发环境中,playerglobal.swc文件扮演着至关重要的角色。它是一个包含Flash Player运行时库的组件,提供了与ActionScript 3.0交互...
4. **编译与发布**:Flash Develop能够直接将源代码编译成SWF或SWC文件,同时也可以发布为AIR应用程序,方便在桌面或移动设备上运行。 5. **集成开发环境**:Flash Develop与其他开发工具如Flex SDK、Apache Flex或...
7. **社区支持**:FlashDevelop有一个活跃的开发者社区,用户可以在论坛上交流技术问题,获取最新的插件信息,甚至参与到项目的开发和改进中。 总的来说,FlashDevelop 4.0.1RTM汉化版是一个为中文用户量身定制的...
不支持HTML标签.F:\Fl实例\flash组件.swc
Flash开发的项目可以使用的原生UI,挺好用的,对于开发自主的小功能软件非常有用。
open flash chart 2 的swc文件包 可以在flex里面调用了. [Bindable] private var chart:String='{ "elements": [ { "type": "bar","alpha":0.8,"colour":"#663366", "values": [ 0 ] } ], "title": { "text": "...
- **工具**:除了Flash Professional和Flex Builder,还可以使用命令行工具如FlashDevelop或Apache Flex SDK来创建和管理SWC库。 结合这些知识点,你可以创建一个交互式的Web应用,让Flash组件通过JavaScript与...
AssetsPackager 是 FlashDevelop( http://www.flashdevelop.org ) 的插件。 安装 AssetsPackager Plugin 时,只需右键单击文件夹并选择“Package assets”,即可生成用于嵌入资产的资产库 SWF、SWC 和 AS3 代码...
这通常通过在Flex Builder或Flash Builder中右键点击项目,选择“属性”>“ActionScript编译器”>“库路径”>“添加SWC”,然后找到并添加`as3xlsUTF8.swc`来完成。 2. **创建Excel对象**:在代码中,你可以创建一...
SWC加载器该软件包允许使用swc和webpack转换JavaScript文件。安装npm i --save-dev @swc/core swc-loader webpack用法module: { rules: [ { test : / \. m?js $ / , exclude : / ( node_modules | bower_components ...
FlashDevelop-4.3.0-RTM flash AS语言开发工具。 flashdevelop为ActionScript(2&3)和HAXE发展提供了一流的支持。完成代码生成,编译和调试,项目很多项目模板,SWF / SWC勘探等全集也与源代码控制支持一个web开发...
Flash APE为Flash 物理引擎。其实很久以前就有,这次自己整理一下,swc中修改了vector为VectorAPE,这次不是增强版。chm也为英文文件。swc文件已经测试可用。chm资料是从官网上考贝下来自己整理的。
5. 开发教程:详尽的指导材料,帮助开发者解决问题并进行开发。 6. Flex Air支持:1.4.1.swc,使得FlexPaper可应用于桌面环境。 通过这些资源,开发者可以构建出功能齐全、用户体验优秀的在线文档查看应用,无论是...