Yangbo's Blog!

Artificial Intelligence Board Game.

AS3 transfor Vector to C++ by Alchemy.

March19

AS3:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="onCreationComplete(event)">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import __AS3__.vec.Vector;
import cmodule.vectorSample.CLibInit;
import mx.events.FlexEvent;
private var clib:CLibInit;
private var clibInit:Object;
private var vector:Vector.<String>;

internal function onCreationComplete(event:FlexEvent):void
{
clib = new CLibInit();
clibInit = clib.init();

vector = Vector.<String>(["Hello","World!"]);
var tempObj:Array = clibInit.getVector(vector);
trace(tempObj[0]);
Alert.show(tempObj[0][0][0].toString(),tempObj[0][0][1].toString());
}
]]>
</mx:Script>
</mx:Application>

C++:

#include "stdio.h"

#include "../AS3.h"

//************************************
// Method:    getVector
// FullName:  getVector
// Access:    public
// Returns:   AS3_Val
// Qualifier:
// Parameter: void * data
// Parameter: AS3_Val args
//************************************
AS3_Val getVector(void *data,AS3_Val args)
{
/* create array*/
AS3_Val array = AS3_Array("");
AS3_Set(array,AS3_Int(0),args);
return array;
}

//************************************
// Method:    main
// FullName:  main
// Access:    public
// Returns:   int
// Qualifier:
// Parameter: void
//************************************
int main(void)
{
/*define the function available in flash*/
AS3_Val getVectorMethod = AS3_Function(NULL,getVector);
/*build the result object*/
AS3_Val result = AS3_Object("getVector:AS3ValType",getVectorMethod);
AS3_SetS(result,"getVector",getVectorMethod);
/*free for as3 garbage collection*/
AS3_Release(getVectorMethod);
/* init */
AS3_LibInit(result);
return 0;
}

Demo:

Get Adobe Flash player

Source:

alchemysample_usingas3vector

Email will not be published

Website example

Your Comment:

 

BLOG CALENDAR

September 2010
M T W T F S S
« Apr    
 12345
6789101112
13141516171819
20212223242526
27282930