日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ios/android代码生成FLASH可用的actionscript代码(*.ane)

發布時間:2025/3/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ios/android代码生成FLASH可用的actionscript代码(*.ane) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

PS:最近由于工作原因,需要把現有的Android+IOS工程轉成flash air可用的工程,簡單來說就是把ios+android 轉換成ane

歡迎各種轉載,轉載請注明出處

微信:coderbook ?

gitHub:https://github.com/coderbook

blog:http://www.coderbook.net

開發環境:

  1、操作系統:Windows/MacOX/Linux 本文以MacOX10.9為例

  2、開發環境(IDE):Xcode6.1+FlashBuilder4.6

  3、SDK:IOS8.0以上,AdobeAirSDK16+

一、概述

  1)AdobeAirSDK安裝

  2)使用FlashBuilder創建actionscript library項目(以TalkingData Adtracking項目為例)

  3)利用xcode創建actionscript調用ios代碼的中間項目

  4)創建actionscript調用android代碼的中間工程

  5)導出各項目,放在相應的目錄中,并編寫相應配置文件

  6)使用airsdk命令編譯生成*.ane項目

  7)創建使用調用ane代碼的demo

  8)編譯android版本生成apk

  9)創建ios版本生成ipa

二、AdobeAirSDK安裝

  1)下載之后開始安裝,在mac ox的安裝路徑如下:~/AIRSDK_Compiler

  2)配置環境變量。vim ~/.bash_profile 添加如下內容:export PATH=$PATH:/Users/vernon/AIRSDK_Compiler/bin

  3)退出保存。

  4)打開Command(命令行工具),運行adt -version查看是否配置正確。

  

  5)安裝完成

  6)QA?

三、使用FlashBuilder創建actionscript library項目

  1)下載和安裝FlashBuilder(我的版本是4.6)

  2)下載TalkingData SDK Tdtracking版本。ios版本 android版本

  3)打開FlashBuiler創建ActionScript library項目,packagename命名為com.talkingdata.sdk

    3.1 打開TalkingDataAdtracking SDK 查看可以使用的接口,以下方法都是我們要封裝的接口

    

?    3.2 創建TalkingDataAdTracking類。添加引用?import flash.external.ExtensionContext (actionScript就是通過這個類來實現與ios和android代碼進行通信的)并且創建?extContext=ExtensionContext.createExtensionContext("com.talkingdata.sdk",null);

    

    

    

    3.3 對于extContext.call(functionName,TalkingDataAneFunction.AdTracking_init,...);方法的說明:extContext.call方法第一個參數是方法名,這里咱們之前定義的  

//函數名稱,以后的調用都是過這個方法名來傳遞的 public static const functionName:String="TalkingDataFunctions";

    第二個參數用來標識,調用的是TalkingDataAdtracking的哪個方法,如上面init方法里的AdTracking_init方法;

    剩下的參數是調用TalkingData Adtracking SDK 所需要的參數。

    3.4 剩下的方法實現,可以參數源碼 gitHub

四、利用xcode創建actionscript調用ios代碼的中間項目

  1)從官網下載FlashRuntimeExtensions.h(也可以從我的github地址下載)文件,這是一個C寫的與actionscript交互的代碼

  2)創建一個名稱為TalkingDataSDKIOSLib的ios library項目,并且添加對FlashRuntimeExtensions.h和TalkingData SDK的引用

  如圖:

    

  3)創建名稱為TalkingDataSDKIOSLib.h和TalkingDataSDKIOSLib.m的調用類,如上圖所示。

  4)添加引用并且定義與actionscript中相同值的方法類型(int類型)

    

  5)添加Initializer和Finalizer方法(參數是固定格式)

void TalkingDataSDKContextInitializer(void* extData, const uint8_t* ctxType, FREContext ctx, uint32_t* numFunctionsToTest, const FRENamedFunction** functionsToSet){*numFunctionsToTest=1;FRENamedFunction *func=(FRENamedFunction*)malloc(sizeof(FRENamedFunction) * 1);func[0].name=(const uint8_t*)"TalkingDataFunctions";func[0].functionData=NULL;func[0].function=&TalkingDataSDKFunctions;*functionsToSet=func;}void TalkingDataSDKContextFinalizer(FREContext ctx){}void TalkingDataSDKExtensionInitializer(void** extDataToSet, FREContextInitializer* ctxInitializerToSet, FREContextFinalizer* ctxFinalizerToSet){extDataToSet=NULL;*ctxInitializerToSet=&TalkingDataSDKContextInitializer;*ctxFinalizerToSet=&TalkingDataSDKContextFinalizer; }

  6)如上面代碼所示,最終的調用函數都指向了TalkingDataSDKFunctions這個方法(也是固定參數),所以添加方法

FREObject TalkingDataSDKFunctions(FREContext ctx, void* funcData, uint32_t argc, FREObject argv[]){... }

?  7)

?五、創建actionscript調用android代碼的中間工程

  1)用FlashBuilder(用eclipse或者android studio都可以)創建名稱為TalkingDataSDKJava項目,并且添加package:com.talkingdata.sdk.flashair。

  2)添加需要使用jar包

    2.1 添加talkingdata sdk和FlashRuntimeExtensions.jar(adobe 封裝的jar包)的引用。

    2.2 添加android的依賴包(/Users/vernon/android-sdk-macosx/platforms/android-18/andorid.jar)(eclipse或者android studio 不需要添加這步)

  3)創建TalkingDataFunctions 繼承FREFunction用來處理所有從actionscript傳過來的方法。

public class TalkingDataFunctions implements FREFunction {TalkingDataSDKContext exContext=null;public TalkingDataFunctions(TalkingDataSDKContext exContext){this.exContext=exContext;}private String Tag="TalkingDataFunctions";@Overridepublic FREObject call(FREContext arg0, FREObject[] arg1) {FREObject obj=null;..........return obj;} }

?

  4)創建TalkingDataSDKContext類繼承FREContext

public class TalkingDataSDKContext extends FREContext{@Overridepublic Map<String, FREFunction> getFunctions() {Map<String, FREFunction> functionMap = new HashMap<String, FREFunction>();functionMap.put("TalkingDataFunctions",new TalkingDataFunctions(this));return functionMap;}@Overridepublic void dispose() {} }

  5)創建TalkingDataSDKExtension繼承FREExtension類,并實現createContext方法:

@Overridepublic FREContext createContext(String arg0) {TalkingDataSDKContext talkingDataContext = new TalkingDataSDKContext();return talkingDataContext;}

  6)具體調用TalkingData SDK的方法可以參考TalkingDataFunctions類的方式。

六、導出各項目,放在相應的目錄中,并編寫相應配置文件?

  1)創建名為TalkingDataSDKbuild的文件夾,用來存放所有需要的文件,并且在該文件夾中分別創建名為Android-ARM、iPhone-ARM、default三個文件夾。

  2)導出并生成必須的文件

    2.1?以jar包的形式導出“第五步”中創建的代碼。名字為:anejava.jar 。

    2.2 利用jar命令把剛剛導出的talkingdataanejava.jar和talkingdata Adtracking sdk的jar合并成為一個jar,即talkingdataane.jar。{

       mkdir tmp

       cd tmp

       jar -xvf  ../anejava.jar?

       jar -xvf? ../talkingdata-sdk-xxx.jar

       jar -cvf ?talkingdataane.jar .

      }

    2.3 導出在“第四步”中生成的.a庫(xcode:先選擇設備類型為IOS Device 然后再 command+B)在Products文件夾下libTalkingDataSDKIOSLib.a

    2.4 導出在“第三步”中生成的actionscript的庫。在bin目錄下的TalkingDataSDKAS.swc

   3)把相關的庫放到對應的目錄下面

    3.1 把talkingdataane.jar放在Android-ARM下面

    3.2 把libTalkingDataSDKIOSLib.a放在iPhone-ARM下面

    3.3 把TalingDataSDKAS.swc 放在TalkingDataSDKbuild文件夾下面。并且復制一份TalingDataSDKAS副本.swc把它修改成.zip,然后解壓。

      打開解壓后臺的文件,把名字為library.swf的文件分別copy到Android-ARM、iPhone-ARM、default下面各一份。

      然后刪除TalingDataSDKAS副本.zip和TalingDataSDKAS副本文件夾

   4)創建其它必要文件

    4.1 生成*.p12文件用于給ane簽名

    4.2 創建extension.xml

<extension xmlns="http://ns.adobe.com/air/extension/16.0"> <!-- 這里與三-3.2中的字符串相同 --><id>com.talkingdata.sdk</id><versionNumber>1.0.0</versionNumber><platforms> <!-- Android-ARM 相對android的文件夾--><platform name="Android-ARM"><applicationDeployment><nativeLibrary>talkingdataane.jar</nativeLibrary><!-- 這里是之前在android庫中創建的類名 --><initializer>com.talkingdata.sdk.flashair.TalkingDataSDKExtension</initializer><finalizer>com.talkingdata.sdk.flashair.TalkingDataSDKExtension</finalizer></applicationDeployment></platform><platform name="iPhone-ARM"><applicationDeployment><nativeLibrary>libTalkingDataSDKIOSLib.a</nativeLibrary><!-- 對ios庫中TalkingDataSDKIOSLib里方式的名稱 --><initializer>TalkingDataSDKExtensionInitializer</initializer>
<finalizer>TalkingDataSDKContextFinalizer</finalizer>
</applicationDeployment> </platform><platform name="default"><applicationDeployment/></platform></platforms> </extension>

    4.3 在iPhone-ARM下創建platform.xml的文件

<platform xmlns="http://ns.adobe.com/air/extension/16.0"><sdkVersion>8.0</sdkVersion><linkerOptions><option>-w</option><option>-ios_version_min 5.1.1</option> <option>-framework AdSupport</option><option>-framework Security</option> <option>-framework CoreTelephony</option><option>-lz</option></linkerOptions> </platform>

?

七、打開命令行,進入到TalkingDataSDKbuild目錄下 執行:

  adt -package -storetype pkcs12 -keystore a.p12 -storepass wangying -target ane com.talkingdata.adtracking.ane extension.xml -swc TalkingDataSDKAS.swc -platform Android-ARM -C Android-ARM . -platform iPhone-ARM -C iPhone-ARM . -platform default -C default .

  生成com.talkingdata.adtracking.ane。到這里,其實,編寫工作已經完成。

八、創建使用調用ane代碼的demo

  1)創建名TalkingDataSDKDemo的Flex mobile項目。

  2)引用我們剛剛創建好的com.talkingdata.adtracking.ane庫。

 

  3)以生成的為ViewNavigatorApplication類型的application結構來說。打開TalkingDataSDKDemo.mxml。在application_completeHandler方法中進行初始化:

  

  4)在TalkingDataSDKDemoHomeView.mxml頁面添加添加一個按鈕事件,調用onCreateRole方法,如下:

<?xml version="1.0" encoding="utf-8"?> <s:View xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" title="HomeView"><fx:Script><![CDATA[import com.talkingdata.sdk.TalkingDataAdTracking;protected function oncreateButton_click(event:MouseEvent):void{TalkingDataAdTracking.onCreateRole("rolename_td");}]]></fx:Script><fx:Declarations><!-- Place non-visual elements (e.g., services, value objects) here --></fx:Declarations><s:Button x="122" y="87" label="Createrole" click="oncreateButton_click(event)"/> </s:View>

  5)編輯TalkingDataSDKDemo-app.xml文件添加android必須的權限,并且修改TalkingDataSDKDemo-app.xml下面的命名空間為16.0

<android><colorDepth>16bit</colorDepth><manifestAdditions><![CDATA[<manifest android:installLocation="auto"><!--See the Adobe AIR documentation for more information about setting Google Android permissions--><!--Removing the permission android.permission.INTERNET will have the side effectof preventing you from debugging your application on your device--><uses-permission android:name="android.permission.INTERNET"/><!--<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>--><!--<uses-permission android:name="android.permission.READ_PHONE_STATE"/>--><!--<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>--><uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.READ_PHONE_STATE"/><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/></manifest>]]></manifestAdditions></android> <?xml version="1.0" encoding="utf-8" standalone="no"?> <application xmlns="http://ns.adobe.com/air/application/16.0"> ..... </application>

?

  6)保存,并且拷貝bin目錄下面*.xml和*.swf到TalkingDataSDKbuild目錄下面

  7)運行如下腳本(或者使用flashbuilder導出)生成android可運行的apk

adt -package -target apk -storetype PKCS12 -keystore a.p12 -storepass wangying talkingdata-android-adtracking.apk TalkingDataSDKDemo-app.xml TalkingDataSDKDemo.swf -extdir .

?  8)編譯ios版本

    8.1 修改TalkingDataSDKDemo-app.xml的<iPhone></iPhone>部分,添加bundleId

<iPhone><InfoAdditions><![CDATA[<key>com.talkingdata.sdk.aneDemo</key><array><string>1</string><string>2</string></array>]]></InfoAdditions><requestedDisplayResolution>high</requestedDisplayResolution></iPhone>

    8.2 在ios開發者后臺創建bundleId為com.talkingdata.sdk.aneDemo的開發者證書,如,命名為:anetrackingadhoc.mobileprovision

    8.3 運行以下腳本,生成ipa包:

adt -package -target ipa-test -provisioning-profile anetrackingadhoc.mobileprovision -storetype PKCS12 -keystore a.p12 -storepass wangying talkingdata-adtracking.ipa TalkingDataSDKDemo-app.xml TalkingDataSDKDemo.swf -extdir . -platformsdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk

?

轉載于:https://www.cnblogs.com/coderbook/p/4422430.html

總結

以上是生活随笔為你收集整理的ios/android代码生成FLASH可用的actionscript代码(*.ane)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。