if(!i->pagefinished)
endpage(dev);
- if(i->config_insertstoptag) {
+ if( (i->swf->fileVersion <= 8) && (i->config_insertstoptag) ) {
ActionTAG*atag=0;
atag = action_Stop(atag);
atag = action_End(atag);
}
}
-
void swfoutput_finalize(gfxdevice_t*dev)
{
swfoutput_internal*i = (swfoutput_internal*)dev->internal;
i->swf->compressed = 1;
}
+ /* Initialize AVM2 if it is a Flash9 file */
+ if(i->config_flashversion>=9 && i->config_insertstoptag) {
+ AVM2_InsertStops(i->swf);
+ }
// if(i->config_reordertags)
// swf_Optimize(i->swf);
}
return "DEFINEEDITTEXT";
case ST_DOACTION:
return "DOACTION";
+ case ST_DOABC:
+ return "DOABC";
case ST_DEFINEFONTINFO:
return "DEFINEFONTINFO";
case ST_DEFINESOUND:
return "EXTERNALFONT";
case ST_EXPORTASSETS:
return "EXPORTASSETS";
+ case ST_SYMBOLCLASS:
+ return "SYMBOLCLASS";
+ case ST_DEFINEBINARY:
+ return "DEFINEBINARY";
case ST_IMPORTASSETS:
return "IMPORTASSETS";
case ST_ENABLEDEBUGGER:
ST_DEFINEBUTTON2,
ST_DEFINESOUND,
ST_DEFINEVIDEOSTREAM,
+ ST_DEFINEBINARY,
-1
};
ST_REMOVEOBJECT,
ST_REMOVEOBJECT2,
ST_DOACTION,
+ ST_DOABC,
ST_STARTSOUND,
ST_FRAMELABEL,
ST_SOUNDSTREAMHEAD,
case ST_FREECHARACTER: /* unusual tags, which all start with an ID */
case ST_NAMECHARACTER:
+ case ST_DEFINEBINARY:
case ST_GENERATORTEXT:
callback(tag, tag->pos + base, callback_data);
break;
if(swf->fileVersion >= 9) {
if (swf->firstTag && swf->firstTag->id != ST_FILEATTRIBUTES)
{
- U32 flags = 0x8; // | 128 = usenetwork, | 8 = hasmetadata
+ U32 flags = 0x8; // | 128 = usenetwork, | 16 = Actionscript3 | 8 = hasmetadata
swf_SetU32(swf_InsertTagBefore(swf, swf->firstTag,ST_FILEATTRIBUTES),flags);
}
}
#include "modules/swfcgi.c"
#include "modules/swfbits.c"
#include "modules/swfaction.c"
+#include "modules/swfabc.c"
#include "modules/swfsound.c"
#include "modules/swfdraw.c"
#include "modules/swfrender.c"
#define ST_DEFINEFONTALIGNZONES 73 /* version 8 */
#define ST_CSMTEXTSETTINGS 74 /* version 8 */
#define ST_DEFINEFONT3 75 /* version 8 */
+#define ST_SYMBOLCLASS 76 /* version 9 */
#define ST_METADATA 77 /* version 8 */
#define ST_DEFINESCALINGGRID 78 /* version 8 */
+#define ST_DOABC 82 /* version 9 */
#define ST_DEFINESHAPE4 83 /* version 8 */
#define ST_DEFINEMORPHSHAPE2 84 /* version 8 */
#define ST_SCENEDESCRIPTION 86 /* version 9 */
+#define ST_DEFINEBINARY 87 /* version 9 */
/* custom tags- only valid for swftools */
#define ST_REFLEX 777 /* to identify generator software */
FILTER*swf_GetFilter(TAG*tag);
FILTER*swf_NewFilter(U8 type);
+void AVM2_InsertStops(SWF*swf);
+
#ifdef __cplusplus
}
#endif
if(tag->len)
dumperror("End Tag not empty");
}
- else if(tag->id == ST_EXPORTASSETS) {
+ else if(tag->id == ST_EXPORTASSETS || tag->id == ST_SYMBOLCLASS) {
handleExportAssets(tag, myprefix);
}
else if(tag->id == ST_DOACTION && action) {