X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=blobdiff_plain;f=src%2Fas3compile.c;h=8810cec27e0213fa9da31e9799fd74f21f721cef;hp=f42af26bf305ee7fab0364046b4d5b383d278dcc;hb=4da50aa69285c6f5abd97e41dd195648b8df49fe;hpb=0904278e1882a38a90117cf550c71c0c2bdbde7b diff --git a/src/as3compile.c b/src/as3compile.c index f42af26..8810cec 100644 --- a/src/as3compile.c +++ b/src/as3compile.c @@ -38,6 +38,8 @@ static double width = 400; static double height = 300; static int flashversion = 9; static int verbose = 1; +static char local_with_networking = 0; +static char local_with_filesystem = 0; static struct options_t options[] = { {"h", "help"}, @@ -48,7 +50,10 @@ static struct options_t options[] = { {"X", "width"}, {"Y", "height"}, {"r", "rate"}, +{"l", "library"}, +{"I", "include"}, {"T", "flashversion"}, +{"R", "recurse"}, {"o", "output"}, {0,0} }; @@ -92,6 +97,28 @@ int args_callback_option(char*name,char*val) do_cgi = 1; return 0; } + else if(!strcmp(name, "l")) { + as3_import_file(val); + return 1; + } + else if(!strcmp(name, "I")) { + as3_add_include_dir(val); + return 1; + } + else if(!strcmp(name, "R")) { + as3_set_option("recurse","1"); + return 0; + } + else if (!strcmp(name, "N")) + { + local_with_networking = 1; + return 0; + } + else if (!strcmp(name, "L")) + { + local_with_filesystem = 1; + return 0; + } else { printf("Unknown option: -%s\n", name); exit(1); @@ -115,6 +142,8 @@ void args_callback_usage(char *name) printf("-X , --width Set target SWF width\n"); printf("-Y , --height Set target SWF width\n"); printf("-r , --rate Set target SWF framerate\n"); + printf("-l , --library Include library file \n"); + printf("-I , --include Add include dir \n"); printf("-T , --flashversion Set target SWF flash version to .\n"); printf("-o , --output Set output file to .\n"); printf("\n"); @@ -155,8 +184,18 @@ void writeSWF(SWF*swf) int main (int argc,char ** argv) { + char buf[512]; + char*currentdir = getcwd(buf, 512); + if(!currentdir) { + as3_warning("Could not determine the current directory"); + } else { + as3_add_include_dir(currentdir); + } + registry_init(); + int t; processargs(argc, argv); + as3_setverbosity(verbose); if(!filename) { args_callback_usage(argv[0]); @@ -167,16 +206,6 @@ int main (int argc,char ** argv) //as3_warning("output name not given, writing to %s", outputname); } - as3_setverbosity(verbose); - - char buf[512]; - char*currentdir = getcwd(buf, 512); - if(!currentdir) { - as3_warning("Could not determine the current directory"); - } else { - as3_add_include_dir(currentdir); - } - as3_parse_file(filename); void*code = as3_getcode(); @@ -199,7 +228,6 @@ int main (int argc,char ** argv) } else { as3_warning("no global public MovieClip subclass"); } - as3_destroy(); @@ -207,6 +235,11 @@ int main (int argc,char ** argv) tag = swf_InsertTag(tag, ST_END); swf_FreeABC(code); + + if(local_with_filesystem) + swf.fileAttributes &= ~FILEATTRIBUTE_USENETWORK; + if(local_with_networking) + swf.fileAttributes |= FILEATTRIBUTE_USENETWORK; writeSWF(&swf); swf_FreeTags(&swf);