X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fexample%2Fbuttontest.c;h=18238175523437e62e1274356c0c43c32a408504;hb=bbad613e3e1bd5c0399c7fcdeeeee7f930a512cb;hp=99ad495934ff3f03c8fbbb9859333900cdd8a1a2;hpb=e29229a3ea9992a5422f03846bab43035463e14c;p=swftools.git diff --git a/lib/example/buttontest.c b/lib/example/buttontest.c index 99ad495..1823817 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 @@ -6,9 +6,20 @@ Copyright (c) 2000, 2001 Matthias Kramm Rainer Böhme - - This file is distributed under the GPL, see file COPYING for details -*/ + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include @@ -17,14 +28,16 @@ TAG* t; -int useDefineButton2 = 0; // set this to 1 to use DefineButton2 Tags - // instead of DefineButton1 +#define ID_BUTTON 31 + +int useDefineButton2 = 1; // set this to 1 to use DefineButton2 Tags + // instead of DefineButton1 int main (int argc,char ** argv) { SWF swf; RGBA rgb; SRECT r; - LPSHAPE s; + SHAPE* s; ActionTAG*a1,*a2,*a3, *actiontoset; S32 width=300,height = 300; @@ -33,7 +46,7 @@ int main (int argc,char ** argv) memset(&swf,0x00,sizeof(SWF)); // set global movie parameters - swf.fileVersion = 4; // make flash 4 compatible swf + swf.fileVersion = 8; // make flash 4 compatible swf swf.frameRate = 0x1900; // about 0x19 frames per second swf.movieSize.xmax = 20*width; // flash units: 1 pixel = 20 units @@ -46,7 +59,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 +80,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 +99,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_IDLE_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|O_BINARY, 0644); if FAILED(swf_WriteSWF(f,&swf)) fprintf(stderr,"WriteSWF() failed.\n"); close(f);