images { image: "background.png" LOSSY 95; image: "heart.png" LOSSY 95; } collections { group { name: "main"; min: 200 200; script { public is_active; } parts { part { name: "base"; description { state: "default" 0.0; color: 255 255 255 255; rel1 { relative: 0 0; offset: 0 0; } rel2 { relative: 1.0 1.0; offset: -1 -1; } image { normal: "background.png"; border: 0 0 0 0; } } } part { name: "obj"; type: IMAGE; description { aspect: 1 1; state: "default" 0.0; color: 255 255 255 255; rel1 { relative: 0.3 0.3; offset: 0 0; } rel2 { relative: 0.7 0.7; offset: 0 0; } image { normal: "heart.png"; } } description { state: "reduced" 0.0; inherit: "default" 0.0; rel1 { relative: 0.4 0.4; offset: 0 0; } rel2 { relative: 0.6 0.6; offset: 0 0; } } } programs { program { signal: "load"; name: "start_animation"; source: ""; after: "reduce_obj"; script { set_int(is_active, 1); } } program { name: "reduce_obj"; source: "obj"; action: STATE_SET "reduced" 0.0; transition: LINEAR 0.7; target: "obj"; script { new val; val = get_int(is_active); if (val == 1) { run_program(PROGRAM:"enlarge_obj"); } } } program { name: "enlarge_obj"; source: "obj"; action: STATE_SET "default" 0.0; transition: LINEAR 0.7; target: "obj"; script { new val; val = get_int(is_active); if (val == 1) { run_program(PROGRAM:"reduce_obj"); } } } } } }