From 60ff660d421fd5aeefd18978cecaac60b6c13d88 Mon Sep 17 00:00:00 2001 From: Elliot Smith Date: Fri, 3 Sep 2010 11:56:33 +0100 Subject: [PATCH] cookbook: Added a second example to show "overlapping" transitions Added another JSON example to show how transitions can be easily overlapped when using ClutterAnimator (two sequences of 5 transitions, simultaneous with two sequences of 1 transition). Modified the C JSON loader program so it can be used with this example as well. --- .../animations-complex-overlapping.json | 80 +++++++++++++++++++ doc/cookbook/examples/animations-complex.c | 9 ++- 2 files changed, 87 insertions(+), 2 deletions(-) create mode 100644 doc/cookbook/examples/animations-complex-overlapping.json diff --git a/doc/cookbook/examples/animations-complex-overlapping.json b/doc/cookbook/examples/animations-complex-overlapping.json new file mode 100644 index 000000000..cae2a96ac --- /dev/null +++ b/doc/cookbook/examples/animations-complex-overlapping.json @@ -0,0 +1,80 @@ +[ + { + "type" : "ClutterStage", + "id" : "stage", + "width" : 550, + "height" : 350, + "color" : "#333355ff", + + "signals" : [ + { "name" : "destroy", "handler" : "clutter_main_quit" }, + { "name" : "key-press-event", "handler" : "foo_key_pressed_cb" } + ], + + "children" : [ + { + "type" : "ClutterRectangle", + "id" : "rectangle", + "color" : "red", + "width" : 50, + "height" : 50, + "x" : 0, + "y" : 0, + "scale-gravity" : "center" + } + ] + }, + + { + "type" : "ClutterAnimator", + "id" : "animator", + "duration" : 4000, + + "properties" : [ + { + "object" : "rectangle", + "name" : "x", + "ease-in" : true, + "keys" : [ + [ 0.0, "linear", 0.0 ], + [ 0.1, "easeInCubic", 50.0 ], + [ 0.2, "easeInCubic", 200.0 ], + [ 0.4, "easeInCubic", 75.0 ], + [ 0.5, "easeOutCubic", 300.0 ], + [ 1.0, "easeInCubic", 400.0 ] + ] + }, + { + "object" : "rectangle", + "name" : "y", + "ease-in" : true, + "keys" : [ + [ 0.0, "linear", 0.0 ], + [ 0.1, "easeInCubic", 50.0 ], + [ 0.2, "easeInCubic", 200.0 ], + [ 0.4, "easeInCubic", 75.0 ], + [ 0.5, "easeOutCubic", 150.0 ], + [ 1.0, "easeInCubic", 200.0 ] + ] + }, + { + "object" : "rectangle", + "name" : "scale-x", + "ease-in" : true, + "keys" : [ + [ 0.0, "linear", 1.0 ], + [ 1.0, "linear", 4.0 ] + ] + }, + { + "object" : "rectangle", + "name" : "scale-y", + "ease-in" : true, + "keys" : [ + [ 0.0, "linear", 1.0 ], + [ 1.0, "linear", 4.0 ] + ] + } + ] + } +] diff --git a/doc/cookbook/examples/animations-complex.c b/doc/cookbook/examples/animations-complex.c index 3121ef5a2..62542e47d 100644 --- a/doc/cookbook/examples/animations-complex.c +++ b/doc/cookbook/examples/animations-complex.c @@ -30,19 +30,24 @@ foo_key_pressed_cb (ClutterActor *actor, int main (int argc, char *argv[]) { + gchar *filename = UI_FILE; + ClutterScript *script; ClutterActor *stage; GError *error = NULL; + if (argc > 1) + filename = argv[1]; + clutter_init (&argc, &argv); script = clutter_script_new (); - clutter_script_load_from_file (script, UI_FILE, &error); + clutter_script_load_from_file (script, filename, &error); if (error != NULL) { - g_critical ("Error loading ClutterScript file %s\n%s", UI_FILE, error->message); + g_critical ("Error loading ClutterScript file %s\n%s", filename, error->message); g_error_free (error); exit (EXIT_FAILURE); }