X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fexample%2Fbuttontest.c;h=a596404e3b293b167e039e6cf814a8c920d5fc8b;hb=1f237fb411319057ae1e4f779e511cea0e206858;hp=99ad495934ff3f03c8fbbb9859333900cdd8a1a2;hpb=e29229a3ea9992a5422f03846bab43035463e14c;p=swftools.git diff --git a/lib/example/buttontest.c b/lib/example/buttontest.c index 99ad495..a596404 100644 --- a/lib/example/buttontest.c +++ b/lib/example/buttontest.c @@ -1,4 +1,4 @@ -/* shape1.c +/* buttontest.c Example implementation for creating a button with rfxswf @@ -17,8 +17,10 @@ TAG* t; +#define ID_BUTTON 31 + int useDefineButton2 = 0; // set this to 1 to use DefineButton2 Tags - // instead of DefineButton1 + // instead of DefineButton1 int main (int argc,char ** argv) { SWF swf; @@ -46,7 +48,7 @@ int main (int argc,char ** argv) rgb.b = 0xff; swf_SetRGB(t,&rgb); - for(count=0;count<4;count++) + for(count=1;count<4;count++) { t = swf_InsertTag(t,ST_DEFINESHAPE); swf_ShapeNew(&s); // create new shape instance @@ -67,24 +69,18 @@ int main (int argc,char ** argv) swf_ShapeFree(s); // clean shape structure (which isn't needed anymore after writing the tag) } - a1 = swf_ActionStart(t); - action_SetTarget("movie"); - action_NextFrame(); - action_SetTarget(""); - action_End(); - swf_ActionEnd(); + a1 = action_SetTarget(0, "movie"); + a1 = action_NextFrame(a1); + a1 = action_SetTarget(a1, ""); + a1 = action_End(a1); - a2 = swf_ActionStart(t); - //action_GetUrl("test.swf","_level0"); // load a swf - //action_GetUrl("index.html","_this"); // load html in new window - action_GetUrl("http://www.quiss.org/swftools/index.html","_parent"); // load html in this window - action_End(); - swf_ActionEnd(); - - a3 = swf_ActionStart(t); - action_GotoFrame(33); - action_End(); - swf_ActionEnd(); + //a2 = action_GetUrl(a2, "test.swf","_level0"); // load a swf + //a2 = action_GetUrl(a2, "index.html","_this"); // load html in new window + a2 = action_GetUrl(0, "http://www.quiss.org/swftools/index.html","_parent"); // load html in this window + a2 = action_End(a2); + + a3 = action_GotoFrame(0,33); + a3 = action_End(a3); actiontoset = a2; @@ -92,45 +88,40 @@ int main (int argc,char ** argv) { t = swf_InsertTag(t,ST_DEFINEBUTTON); swf_SetU16(t,31); //id - swf_ButtonSetFlags(t, 0); //menu=no - swf_ButtonSetRecord(t,0x01,33,1,0,0); - swf_ButtonSetRecord(t,0x02,34,1,0,0); - swf_ButtonSetRecord(t,0x04,35,1,0,0); - swf_ButtonSetRecord(t,0x08,36,1,0,0); - swf_SetU8(t,0); - swf_SetActions(t,actiontoset); - swf_SetU8(t,0); + swf_ButtonSetRecord(t,BS_UP|BS_HIT,34,1,NULL,NULL); + swf_ButtonSetRecord(t,BS_OVER,35,1,NULL,NULL); + swf_ButtonSetRecord(t,BS_DOWN,36,1,NULL,NULL); + swf_SetU8(t,0); // end of button records + + swf_ActionSet(t,actiontoset); } else { t = swf_InsertTag(t,ST_DEFINEBUTTON2); - swf_SetU16(t,31); //id + swf_SetU16(t,ID_BUTTON); //id swf_ButtonSetFlags(t, 0); //menu=no - swf_ButtonSetRecord(t,0x01,33,1,0,0); - swf_ButtonSetRecord(t,0x02,34,1,0,0); - swf_ButtonSetRecord(t,0x04,35,1,0,0); - swf_ButtonSetRecord(t,0x08,36,1,0,0); - swf_SetU8(t,0); - - swf_ButtonSetCondition(t, 4); - swf_SetActions(t,actiontoset); - swf_SetU8(t,0); - - swf_ButtonSetCondition(t, 0); - swf_SetU8(t,0); - - swf_SetU8(t,0); - - swf_ButtonPostProcess(t, 2); + swf_ButtonSetRecord(t,BS_UP|BS_HIT,34,1,NULL,NULL); + swf_ButtonSetRecord(t,BS_OVER,35,1,NULL,NULL); + swf_ButtonSetRecord(t,BS_DOWN,36,1,NULL,NULL); + swf_SetU8(t,0); // end of button records + + swf_ButtonSetCondition(t, BC_OVERDOWN_OVERUP); + swf_ActionSet(t,actiontoset); + + swf_ButtonPostProcess(t, 1); // don't forget! } + swf_ActionFree(a1); + swf_ActionFree(a2); + swf_ActionFree(a3); + t = swf_InsertTag(t,ST_PLACEOBJECT2); - swf_ObjectPlace(t, 31, 2,0,0,0); + swf_ObjectPlace(t, ID_BUTTON, 2,0,0,0); t = swf_InsertTag(t,ST_SHOWFRAME); t = swf_InsertTag(t,ST_END); - f = open("button.swf",O_WRONLY|O_CREAT, 0644); + f = open("buttontest.swf",O_WRONLY|O_CREAT, 0644); if FAILED(swf_WriteSWF(f,&swf)) fprintf(stderr,"WriteSWF() failed.\n"); close(f);