actionscript 3 - Flash restart functions after completion -


i have made code works fine - problem @ end wish make start over.

when started making intent was, .swf movie loop when ended - not happen. figured try , make sort of "restart" function in code reset timer , strings.. have googled around , tried couple of things myself - no luck @ all..

first tried reset variable i. tried remove timer eventlisteners. no succes.

what best way go getting code start on again?

import flash.utils.timer; import flash.events.timerevent; import com.greensock.*; import com.greensock.easing.*;  var str_one:string = 'på fredag udkommer metroxpress, som du kender den, sidste gang... '; var i:uint = 0; var timer_one:timer = new timer(50); timer_one.start(); timer_one.addeventlistener(timerevent.timer, gotime);  var str_two:string = 'på fredag udkommer metroxpress, som du kender den, sidste gang... fra 2. april bliver du mødt af en helt ny avis, med det bedste fra den gamle, tilsat en masse nyt.'; var timer_two:timer = new timer(50); timer_two.addeventlistener(timerevent.timer, gotime_two);  var str_three:string = 'på fredag udkommer metroxpress, som du kender den, sidste gang... fra 2. april bliver du mødt af en helt ny avis, med det bedste fra den gamle, tilsat en masse nyt.sådan vil vi skabe en endnu bedre avis til dig, der er på farten. glæd dig – det gør vi!'; var timer_three:timer = new timer(50); timer_three.addeventlistener(timerevent.timer, gotime_three);  function gotime(e:timerevent) {     tekstbox1_txt.appendtext(str_one.charat(i));     i++;     if (i>=str_one.length) {         timer_one.stop();         tweenlite.to(hand, 1, {y:175, oncomplete:ripwhite});         }     }  function ripwhite():void {     tweenlite.to(hand, 1, {y:405});     tweenlite.to(white_mask, 1, {y:320, oncomplete:fadetekst1ud}); }  function fadetekst1ud():void {     tweenlite.to(tekstbox1_txt, 1, {alpha:0, oncomplete:tekstnr2});     }  function tekstnr2():void { timer_two.start(); }  function gotime_two(e:timerevent) {     tekstbox2_txt.appendtext(str_two.charat(i));     i++;     if (i>=str_two.length) {         timer_two.stop();         tweenlite.to(tekstbox2_txt, 1, {alpha:1, oncomplete:forsinkelse});         }     }  function forsinkelse():void {     tweenlite.to(tekstbox2_txt, 1, {alpha:0, oncomplete:tekstnr3});     }  function tekstnr3():void { timer_three.start(); }  function gotime_three(e:timerevent) {     tekstbox3_txt.appendtext(str_three.charat(i));     i++;     if (i>=str_three.length) {         timer_three.stop();         tweenlite.to(tekstbox3_txt, 1, {alpha:1, oncomplete:sidstefunktion});         }     }  function sidstefunktion():void {     tweenlite.to(tekstbox3_txt, 1, {alpha:0});     tweenlite.to(rippedpic, 1, {alpha:0});     } 

edit:

when setting reset function , making loop initial function this:

function nulstil():void {     = 0;     tweenlite.killtweensof(hand);     tweenlite.killtweensof(tekstbox1_txt);     tweenlite.killtweensof(tekstbox2_txt);     tweenlite.killtweensof(tekstbox3_txt);     timer_one.addeventlistener(timerevent.timer, gotime);     timer_two.addeventlistener(timerevent.timer, gotime_two);     timer_two.addeventlistener(timerevent.timer, gotime_three);     tweenlite.to(white_mask, 0.1, {oncomplete:gotimeagain});     } 

i following in output:

argumenterror: error #1063: argument count mismatch on untitled_fla::maintimeline/gotimeagain(). expected 1, got 0. @ function/http://adobe.com/as3/2006/builtin::apply() @ com.greensock.core::tweencore/complete() @ com.greensock::tweenlite/rendertime() @ com.greensock.core::simpletimeline/rendertime() @ com.greensock::tweenlite$/updateall()

i suggested in comment use timelinemax. here's full code think should work. note use offset argument of append , don't. you'll need fill out reseteverything function set visual elements proper starting positions, alphas, etc.

basically how works: instead of using timers use addcallback feature of timelinemax. callbacks have "length" of 0 in timeline, have manually advance playhead when attaching callbacks, , when add first tween after each batch of callbacks (that's use offset argument). tweens have length, though, subsequent calls append automatically align tweens end of timeline built point.

in constructor of timelinemax specified repeat : -1, cause timeline loop forever. finally, added reseteverything callback @ beginning every time timeline restarts assured elements in correct start position. rest automatic, handled timeline.

import com.greensock.*;  var str_one:string = 'på fredag udkommer metroxpress, som du kender den, sidste gang... '; var str_two:string = 'fra 2. april bliver du mødt af en helt ny avis, med det bedste fra den gamle, tilsat en masse nyt.'; var str_three:string = 'sådan vil vi skabe en endnu bedre avis til dig, der er på farten. glæd dig – det gør vi!';  //-------- helper functions ---------//  // set start positions function reseteverything():void {     // set alphas, positions, etc.      hand.x = <start x>;     hand.y = <start y>;     // }  // quick reusable callback function addtext(textbox:textfield, text:string):void { textbox.appendtext(text); }  //-------- build timeline ---------// var timeline:timelinemax = new timelinemax({repeat : -1}); //repeat = -1 --> loop forever timeline.pause(); timeline.addcallback(reseteverything, 0);  var lng:uint = str_one.length; var playhead:number = 0.05; for(var i:uint = 0; < lng; i++) {     timeline.addcallback(addtext, playhead, [tekstbox1_txt, str_one.charat(i)]);     playhead += 0.05; } timeline.append(new tweenlite(hand, 1, {y:175}), lng * 0.05);  // !!note offset argument here!! timeline.append(new tweenlite(hand, 1, {y:405})); timeline.append(new tweenlite(white_mask, 1, {y:320})); timeline.append(new tweenlite(tekstbox1_txt, 1, {alpha:0}));  playhead += 4; lng = str_two.length; for(i = 0; < lng; i++) {     timeline.addcallback(addtext, playhead, [tekstbox2_txt, str_two.charat(i)]);     playhead += 0.05; } timeline.append(new tweenlite(tekstbox2_txt, 1, {alpha:1}), lng * 0.05); // !!note offset argument here!! timeline.append(new tweenlite(tekstbox2_txt, 1, {alpha:0}));  playhead += 2; lng = str_three.length; for(i = 0; < lng; i++) {     timeline.addcallback(addtext, playhead, [tekstbox3_txt, str_three.charat(i)]);     playhead += 0.05; } timeline.append(new tweenlite(tekstbox3_txt, 1, {alpha:1}), lng * 0.05); // !!note offset argument here!! timeline.append(new tweenlite(tekstbox3_txt, 1, {alpha:0}); timeline.append(new tweenlite(rippedpic, 1, {alpha:0});  timeline.play(); 

Comments

Popular posts from this blog

sql - VB.NET Operand type clash: date is incompatible with int error -

SVG stroke-linecap doesn't work for circles in Firefox? -

python - TypeError: Scalar value for argument 'color' is not numeric in openCV -