Yangbo's Blog!

Artificial Intelligence Board Game.
Browsing C/C++/C#/Qt

TransforAS3OverInfinityNumberByAlchemy

April3

Step 1:
flex input over infinity number string to c(by TextArea):
Step 2:
c get this AS3_String number to double:
Step 3:
c cast double to char ,return AS3_String(char *const) to flex;
Step4:
flex display the result;
Code(flex):

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
	 creationComplete="onCreatioComplete(event)" height="200">
<mx:Script>
	<![CDATA[
		import mx.events.FlexEvent;
		import cmodule.TransforNumber.CLibInit;
//		import cmodule.vectorSample.CLibInit;
		private var myCLibInit:CLibInit;
		private var myCLib:Object;
		private var myResult:String;
		internal function onCreatioComplete(event:FlexEvent):void
		{
			myCLibInit = new CLibInit();
			myCLib = myCLibInit.init();
			trace(myCLib);
		}
		internal function submitHandler(event:MouseEvent):void
		{
			myResult = myCLib.transforNumber(Number(myTextArea.text));
			resultTextArea.text = myResult;
		}
	]]>
</mx:Script>
	<mx:Form width="400" defaultButton="{submitBtn}" verticalCenter="0" horizontalCenter="0" height="200">
		<mx:FormHeading label="TransforFlexMaxNumberByAlchemy" textAlign="center"/>
		<mx:FormItem label="Your number here:" width="100%">
			<mx:TextArea id="myTextArea" width="100%" height="100%"/>
		</mx:FormItem>
		<mx:FormItem label="result from c:" width="100%">
			<mx:TextArea id="resultTextArea" width="100%" height="100%" enabled="false"/>
		</mx:FormItem>
		<mx:FormItem width="100%">
			<mx:Button id="submitBtn" label="Submit" width="100%" emphasized="true" click="submitHandler(event)"/>
		</mx:FormItem>
	</mx:Form>

</mx:Application>

Code(c):

#include "AS3.h"
#include<stdlib.h>
#include<string.h>
#include <stdio.h>

/*
* Simple Demo transfor flash overInfinity number
*
* @author	Knight.zhou
* @date		4/3/09
* @see		http://blog.lookbackon.com
*/

/*
 * transforNumber
 * returns string
 */
AS3_Val transforNumber(void *data,AS3_Val args)
{
	/*Create string display loooong number*/
	double my_double;
	my_double = AS3_NumberValue(args);
	char my_string[99999];   //To hold . and null
	sprintf(my_string,"%9999.4f",my_double);
	return AS3_String(my_string);
}

/*
 * Main
 *
 * Start app her
 * Register Flash Functions, free and init Alchemy
 */
int main(void)
{
	/* define the functions available in flash */
	AS3_Val transforNumberMethod = AS3_Function(NULL,transforNumber);
	/* build the result object */
	AS3_Val result = AS3_Object("transforNumber:AS3ValType",transforNumberMethod);
	AS3_SetS(result,"transforNumber",transforNumberMethod);
	/* free */
	AS3_Release(transforNumberMethod);
	/* init */
	AS3_LibInit(result);
	return 0;
}

Demo:

Get Adobe Flash player


Source:

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

BLOG CALENDAR

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