[AS3] Parse AnalyticsのiOSのANEを作りたい! ActionScript編

2014/08/8

この記事は全4回の「Parse AnalyticsのiOSのANEを作りたい!」シリーズの1つです。

[AS3] Parse AnalyticsのiOSのANEを作りたい! 準備編
[AS3] Parse AnalyticsのiOSのANEを作りたい! Static Library編 
[AS3] Parse AnalyticsのiOSのANEを作りたい! ActionScript編 << イマココ! [AS3] Parse AnalyticsのiOSのANEを作りたい! ANEビルド編


こんにちは。きんくまです。

この間、子供たちを連れて上野の科学博物館に行ってきました。子供もようやくこういう所に連れてきても「疲れた〜」だの「だっこ〜」だの言わなくなって、それなりに展示品に興味がわいてきたみたいなので、遊びに連れていくのが楽しくなってきました。学生の頃は一人でよく博物館とか美術館に行ったので、これから楽しみです。

日本館は時間的に厳しそうなので全く見ずに、地球館の方を全部まわりました。特に印象的だったのがマンモスの化石から突き出した牙でした。「うわ!痛そう」と思いました。

さて、ひきつづきANEづくりです。今回はActionScript側のコードを作ります。

ActionScript側のコード

ActionScript側では、2つのプロジェクトを作ります。
ANEからネイティブコードを実際に呼び出すものと、そうでないものです。ネイティブコードを呼び出さないものはDefaultとしてビルドされます。
例えば、今回の場合はiOSの実機のみ対応のANEを作るので、mac(エミュレータで立ち上げ)やAndroid、iOSシミュレーターなどはDefaultが呼び出されます。

どちらの場合もプロジェクトの形式はActionScript Libraryプロジェクトを選択します。

Flash Builderの場合

flash_builder_as_library_proj

ANEからネイティブコードを使うバージョン

package com.kumade.ane
{
	import flash.events.EventDispatcher;
	import flash.external.ExtensionContext;
	
	public class ParseAnalyticsExtension extends EventDispatcher
	{
		private static const EXTENTION_ID:String = "com.kumade.ane.parse.analytics.extension";
		private var _context:ExtensionContext;
		
		public function ParseAnalyticsExtension()
		{
			_context = ExtensionContext.createExtensionContext(EXTENTION_ID, "");
			if(!_context){
				throw new Error("Parse Analytics ANE could not be initialized");
				return;
			}
		}
		
		/**
		 Init Parse
		 @param appId applicationId
		 @param clientKey clientKey
		 */
		public function setUp(appId:String, clientKey:String):void
		{
			try{
				_context.call("setUp", appId ,clientKey);
			}catch(err:Error){
				trace(err);
			}
		}
		
		/**
		 Call tracking api event
		 @param eventName event name
		 @param parameters parameters you want to track. The format is key1=value1&key2=value2..
		 */
		public function trackEvent(eventName:String, parameters:String):void
		{
			try{
				_context.call("trackEvent", eventName ,parameters);
			}catch(err:Error){
				trace(err);
			}
		}
	}
}

Defaultバージョン

Defaultは何もしないので、trace文を書いていますが空欄でも構わないと思います。

package com.kumade.ane
{
	import flash.events.EventDispatcher;
	
	public class ParseAnalyticsExtension extends EventDispatcher
	{
		public function ParseAnalyticsExtension()
		{
			trace("default ParseAnalyticsExtension's constructor");
		}
		
		public function setUp(appId:String, clientKey:String):void
		{
			trace("default setUp is called");
		}

		public function trackEvent(eventName:String, parameters:String):void
		{
			trace("default trackEvent is called");
		}
	}
}

これで、各プロジェクトをビルドします。
Flash Builderの場合 Project > Build Project

binフォルダの中にswcができていたら完成です。

これでようやくANEのビルドができる準備ができました。
次回は最終回。ANEを作ってテスト送信します。

LINEで送る
Pocket

自作iPhoneアプリ 好評発売中!
フォルメモ - シンプルなフォルダつきメモ帳
ジッピー電卓 - 消費税や割引もサクサク計算!

ページトップへ戻る