测试代码如下:
复制代码
- #include "AS3.h"
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- static AS3_Val file_open(void *data,AS3_Val args)
- {
- char* val = NULL;
- char filetext[1024];
- int num;
- AS3_Val reArra;
- AS3_ArrayValue(args,"StrType",&val);
-
- AS3_Trace(AS3_String(val));
- FILE *fp = fopen(val,"r");;
- if( fp == NULL)
- {
- AS3_Trace(AS3_String("open file lose"));
- memcpy(filetext,val,strlen(val));
- num = -1;
- }
- else
- {
- fgets(filetext,sizeof(filetext),fp);
- AS3_Trace(AS3_String(filetext));
- num = 1;
- }
- reArra = AS3_Array("IntType,StrType",num,filetext);
-
- return reArra;
- }
- void lib_reg(AS3_Val lib, const char *name, AS3_ThunkProc p)
- {
- AS3_Val fun = AS3_Function(NULL, p);
- AS3_SetS(lib, name, fun);
- AS3_Release(fun);
- }
- int main()
- {
- AS3_Val result = AS3_Object("");
- lib_reg(result,"file_open",file_open);
- AS3_LibInit( result );
- return 0;
- }
- ackage
- {
- import flash.display.Sprite;
- import flash.text.TextField;
- import flash.text.TextFieldType;
- //引用包
- import cmodule.hello.CLibInit
- public class hello extends Sprite
- {
- public function hello()
- {
- //初始化库
- var loader:CLibInit = new CLibInit();
- var lib:Object = loader.init();
-
- var aarry:Array = lib.file_open("C:\\alchemy\\samples\\stringecho\\test_xu\\test1\\log.txt");
- trace(aarry[0]);
- trace(aarry[1]);
-
- }
- }
- }
当然后方法了,可以发一个消息给其他的语言,然后由那个语言来改这个文件的内容,不过你要读呀,这完全就可以用非AIR的AS3来实现了,
- var r:URLRequest = new URLRequest("file:\\.............\\.......");
- var l:URLLoader = new URLLoader();
- l.addEventListener(Event.COMPLETE, complete);
- l.load(r);
- function complete(e:Event):void {
- trace(URLLoader(e.target).data);
- }
FileReferecne.load 和 URLLoader.load 都可以读取文件的。