13 January 2016

#gcc将c生成dll#

gcc可以用mingw的

set path=%path%;D:\Program Files (x86)\CodeBlocks\MinGW\bin
gcc -c hello.c
gcc -shared -o hello.dll hello.o FlashRuntimeExtensions.lib

#ant将as3生成swc#

fd新建swc工程,as中调用c中的注册的函数

context= ExtensionContext.createExtensionContext("WinANE", ""); 
public function print():String
{
	return context.call("test") as String;
} 

需要更改fd自动生成的build.xml

这里需要删除文档部分,否则会产生invalid swc错误 ```xml

	<property name="OUTPUT" location="lib/testswc.swc"/>

	<taskdef resource="flexTasks.tasks" classpath="${FLEX_HOME}/ant/lib/flexTasks.jar"/>

	<target name="build">

		<mkdir dir="lib" />

		<!-- compile SWC -->
		<compc output="${OUTPUT}" target-player="11.0" swf-version="13">
			<load-config filename="${FLEX_HOME}/frameworks/air-config.xml" />
			<sp path-element="src" />
			<include-sources dir="src" includes="*"  />
		</compc>
	</target>
</project>

#adt将swc,dll生成ane#

写extension.xml文件

定义id,和初始化,完成函数名,用到的dll

<extension xmlns="http://ns.adobe.com/air/extension/2.5">
<id>winane</id>
<versionNumber>1</versionNumber>
<platforms>
		<platform name="Windows-x86">
			<applicationDeployment>
				<nativeLibrary>hello.dll</nativeLibrary>
				<initializer>ExtInitializer</initializer>
				<finalizer>ExtFinalizer</finalizer>
			</applicationDeployment>
		</platform>
</platforms>
</extension>

将生成好的swc解压到当前文件夹(需用用swc里面的library.swf),执行以下命令,生成ane

set SDK_PATH=E:\sdk\apache-flex-sdk-4.12.1-bin
%SDK_PATH%\bin\adt.bat -package -storetype pkcs12 -keystore test.p12 -storepass test -target ane winane.ane extension.xml -swc hello.swc -platform Windows-x86 library.swf hello.dll

#flashdevelop使用ane#

建立fd air工程

将生成的ane复制到lib文件夹中,添加到库,解压,命名为 xxx_.ane

点击air属性设置,添加ane id

编辑runapp.bat 找到adl 后面添加 -extdir lib。

编辑packager.bat 找到adt 后面添加 -extdir lib。

lib文件夹即为放置解压后ane文件夹的路径