Volledige versie bekijken : click moet x.waarde veranderen
alexa
%Europe/Berlin %653 %2010, 15:41
Beste mensen,
met volgend script probeer ik een mcgroot na elke klik 600 px naar links te laten tweenen.
Ik denk dat ik de 'counter' niet goed script. Hoe dan wel?
var begin:Number = 0;
var eind:Number = begin - 600;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
var myTween:Tween = new Tween(mcgroot, "x", Regular.easeOut, begin, eind, 2, true);
myTween.stop();
knop.addEventListener(MouseEvent.CLICK, onClick);
function onClick(e:MouseEvent){
begin -=600;//<======== zit hier een foutje?
myTween.start();
}
groet,
Alex
Jan
%Europe/Berlin %665 %2010, 15:58
var myTween:Tween = new Tween(mcgroot, "x", Regular.easeOut, mcgroot.x, mcgroot.x-600, 2, true);
Jan
alexa
%Europe/Berlin %673 %2010, 16:09
Dank je Jan,
maar nu gaat hij maar 1 x naar links; elke keer dezelfde beweging.
De bedoeling is echter dat de waarden elke keer met -600 worden opgeteld, na elke click.
Dus na 1x klikken imoet het het -600 worden, na 2x klikken -1200 etc
Hoe krijg ik dat voor elkaar?
groet,
Alex
alexa
%Europe/Berlin %901 %2010, 21:37
Elke keer moet ie dus na een klik nog eens 600 px verder opschuiven.
Dit geprobeerd:
var begin:Number = 0+(-600*count);
var eind:Number = begin - 600;
var count:Number=0;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
var myTween:Tween = new Tween(mcgroot, "x", Regular.easeOut, begin, eind, 2, true);
myTween.stop();
knop.addEventListener(MouseEvent.CLICK, onClick);
function onClick(e:MouseEvent){
count++;
myTween.start();
}
Maar dat wil ook niet. Wie kan me verder helpen?
groet,
Alex
soimon
%Europe/Berlin %992 %2010, 23:49
Hoi Alexa, ik ken tweener niet maar het lijkt mij dat je iedere keer een nieuwe instantie aan zult moeten maken. De variabele "Begin" blijft voor tweener namelijk nog op 0 staan :P
var begin:Number = 0;
var eind:Number = begin - 600;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
var myTween:Tween = new Tween(mcgroot, "x", Regular.easeOut, begin, eind, 2, true);
myTween.stop();
knop.addEventListener(MouseEvent.CLICK, onClick);
function onClick(e:MouseEvent){
begin -=600;
myTween = new Tween(mcgroot, "x", Regular.easeOut, begin, eind, 2, true);
myTween.start();
}
e.l.dam
%Europe/Berlin %413 %2010, 09:55
Hoi Alexa, ik ken tweener niet maar het lijkt mij dat je iedere keer een nieuwe instantie aan zult moeten maken.
Ik gebruik Tweener ook niet, maar hij ook niet ;) Tween is gewoon van Adobe zelf. Aanrader voor tweenen, ga GTween, Tweener of TweenLite/TweenMax gebruiken (kan je zoveel meer mee, en 't is zoveel makkelijker).
alexa
%Europe/Berlin %492 %2010, 11:48
Voor ik andere tween-mogelijkheden onderzoek, vraag ik me af, hoe ik de variable begin kan ophogen na elke klik.
Is (-600*count); wel de juiste manier van scripten?
Daarnaast: is het waar, dat ik voor elke nieuwe tween een nieuwe variabele moet maken?
var begin:Number = (-600*count);
var eind:Number = begin - 600;
var count:Number=0;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
var myTween:Tween = new Tween(mcgroot, "x", Regular.easeOut, begin, eind, 2, true);
myTween.stop();
knop.addEventListener(MouseEvent.CLICK, onClick);
function onClick(e:MouseEvent){
count++;
myTween.start();
trace(begin);//<========= dit geeft NaN
}
groet,
Alex
Nreal
%Europe/Berlin %518 %2010, 12:26
Hey Alex,
je zet je begin variabele te vroeg nu. waardoor de count variabele nog niet bestaat. als je count eerder definieert moet het geen probleem zijn.
Oud:
var begin:Number = (-600*count);
var eind:Number = begin - 600;
var count:Number=0;
Nieuw:
var count:Number=0;
var begin:Number = (-600*count);
var eind:Number = begin - 600;
Ik heb zojuist je volledige script bekeken en heb zelf wat kleine aanpassingen gemaakt:
var movement:int = -600;
var begin:Number = 0;
var eind:Number = begin + movement;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
knop.addEventListener(MouseEvent.CLICK, onClick);
function onClick(e:MouseEvent){
var myTween:Tween = new Tween(mcgroot, "x", Regular.easeOut, begin, eind, 2, true);
myTween.start();
begin = eind;
eind += movement;
trace(begin);
}
probeer dit scriptje is. Het gene wat je vergat is tijdens de klik de variabele begin en eind aan te passen.
hopelijk heb je hier wat aan.
alexa
%Europe/Berlin %527 %2010, 12:40
Dank je Nreal,
voor het meedenken, maar als ik doe wat jij voorstelt krijg ik voortdurend:
trace(begin); // <========= dit geeft nu 0, 0, 0, 0, 0 etc na elke klik
Hij verhoogt de begin-waarde niet.
Maar we zijn al wel verder, denk ik, eerst was het NaN, NaN, NaN etc, nu is het al 0, 0, 0 etc. :)
Maar hoe werkt het nu wel?
groet,
Alex
Nreal
%Europe/Berlin %537 %2010, 12:53
Hey Alex,
vreemd. Ik heb zojuist mijn code getest en hij werkt hier correct.
vervang de trace(begin); door:
trace("var begin: " + begin);
trace("var eind: " + eind);
trace("mc position: " + mcgroot.x);
ik ben benieuwd naar de resultaten.
Kan het misschien zo zijn dat de variabele die we boven zetten in een functie staan en dat je deze aanroept? zoja dan wordt de begin en eind variabele weer opnieuw geset en dat moeten we niet hebben. probeer deze dan buiten de function scope te zetten.
alexa
%Europe/Berlin %545 %2010, 13:05
Dank je Nreal,
het werkt voortreffelijk!
(ik had jouw aanvulling op jouw voorlaatste antwoord niet gezien en verwerkt)
Je laatste aanvulling was niet meer nodig.
hartelijk dank!
Groet,
Alex
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.