static int verbose = 1;
static char local_with_networking = 0;
static char local_with_filesystem = 0;
+static char*mainclass = 0;
static struct options_t options[] = {
{"h", "help"},
{"v", "verbose"},
{"q", "quiet"},
{"C", "cgi"},
+{"R", "resolve"},
{"D", "define"},
{"X", "width"},
{"Y", "height"},
{"r", "rate"},
+{"M", "mainclass"},
{"l", "library"},
{"I", "include"},
+{"N", "local-with-network"},
+{"L", "local-with-filesystem"},
{"T", "flashversion"},
-{"R", "recurse"},
{"o", "output"},
{0,0}
};
framerate = atof(val);
return 1;
}
+ else if(!strcmp(name, "M")) {
+ mainclass = val;
+ return 1;
+ }
else if(!strcmp(name, "v")) {
verbose++;
return 0;
return 0;
}
else if(!strcmp(name, "D")) {
+ if(!strstr(val, "::")) {
+ fprintf(stderr, "Error: compile definition must contain \"::\"\n");
+ exit(1);
+ }
as3_set_define(val);
return 1;
}
printf("-v , --verbose Increase verbosity\n");
printf("-q , --quiet Decrease verbosity\n");
printf("-C , --cgi Output to stdout (for use in CGI environments)\n");
+ printf("-R , --resolve Try to resolve undefined classes automatically.\n");
+ printf("-D , --define <namespace::variable> Set a compile time variable (for doing conditional compilation)\n");
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 <file> Include library file <file>\n");
- printf("-I , --include <dir> Add include dir <dir>\n");
+ printf("-M , --mainclass Set the name of the main class (extending flash.display.MovieClip or .Sprite)\n");
+ printf("-l , --library <file> Include library file <file>. <file> can be an .abc or .swf file.\n");
+ printf("-I , --include <dir> Add additional include dir <dir>.\n");
+ printf("-N , --local-with-network Make output file \"local with networking\"\n");
+ printf("-L , --local-with-filesystem Make output file \"local with filesystem\"\n");
printf("-T , --flashversion <num> Set target SWF flash version to <num>.\n");
printf("-o , --output <filename> Set output file to <filename>.\n");
printf("\n");
} else {
as3_add_include_dir(currentdir);
}
- registry_init();
int t;
processargs(argc, argv);
//as3_warning("output name not given, writing to %s", outputname);
}
- as3_parse_file(filename);
+ if(!strcmp(filename, ".")) {
+ as3_parse_directory(".");
+ } else {
+ as3_parse_file(filename);
+ }
+
void*code = as3_getcode();
SWF swf;
TAG*tag = swf.firstTag = swf_InsertTag(0, ST_DOABC);
swf_WriteABC(tag, code);
- if(as3_getglobalclass()) {
+ if(!mainclass)
+ mainclass = as3_getglobalclass();
+ if(mainclass) {
tag = swf_InsertTag(tag, ST_SYMBOLCLASS);
swf_SetU16(tag, 1);
swf_SetU16(tag, 0);
- swf_SetString(tag, as3_getglobalclass());
+ swf_SetString(tag, mainclass);
} else {
as3_warning("no global public MovieClip subclass");
}