PDA

Volledige versie bekijken : onpress blijft controleren


digitalecartoons
%Europe/Berlin %018 %2005, 01:26
Op Frame 1 heb ik een MC een onpress gegeven: bij een klik op de MC moet verder gegaan worden naar frame 2 waar een tween van zeg maar 50 frames verder gaat. Tot het eind waar b.v. staat Trace ("filmpje is geheel afgespeeld");

Nu ik die Onpress echter gebruik blijft hij die MC ook tijdens de tween op een muisklik erop controleren. De cursur bljift 'm ook als clickable object zien (handje erboven). Als ik dus b.v. op frame 25 zit en op die MC klik (die zich onder de tween bevindt in een aparte laag). Dan denkt tie weer van, ojee geklikt op MC, ga weer naar frame 2. En de tween wordt dus onderbroken.

Wat ik verwacht is dat als er op frame 1 gecheckt is op een klik, hij verder gaat van frame 2 naar frame 50. Vervolgens weer naar frame 1 waar hij weer wacht tot ik een klik geef (onderstaan staat stop() op frame 1 zodat hij steeds even op frame 1 pauseert tot er een klik volgt).

Voor mij zou dat logisch klinken , maar misschien denk ik wel verkeerd? Hoe zorg ik ervoor dat wanneer ik klik hij eerst de rest afspeelt?

theFlashWizard
%Europe/Berlin %027 %2005, 01:39
je bepaalt 1x wat hij doet bij een onPress.. en dat zal hij vanaf dan altijd uitvoeren..
nu kan je die wel weer verwijderen na klik:
instancenameofiets.onPress = function(){
//ga ergens heen
instancenameofiets.onPress = null
}

en kun je niet ipv een gotoAndPlay(2) gwn een play() neerzetten?

digitalecartoons
%Europe/Berlin %368 %2005, 09:50
Maar stel nu het volgende voorbeeld: Op frame 1 heb ik een label "Muis" met alle muis checking actions van movieclip mc:

mc.onpress function(){
gotoandplay ("tween");
}
mc.onrelease function(){
trace ("geklikt en released");
}
stop();

"Tween" is het label van frame 20 t/m 49 en bevat een motion tween. Als er dus op mc wordt geklikt, wordt er gesprongen naar frame 20 (met het label "tween"). Ik begrijp dus dat hij op onpress blijft checken als het eenmaal in frame 1 is ingesteld en is misschien maar handig ook. Maar hij moet de actie gotoandplay("tween"); actie niet uitvoeren als hij al in "tween zit. Anders zou hij b.v. als de playhead zich op frame 35 bevind weer terugspringen naar 20. Hij moet dus netjes wachten tot hij van frame 49 weer naar 1 gaat. Daarna wordt er dan wer met stop(); gepauseerd op frame "muis" en gechecked of onpress.

Op Onrelease wordt ook gecontroleerd. Dit zal dan volgen op een onpress en het afspelen van "tween", maar hij mag de trace actie pas uitvoeren nadat "tween" volledig is afgespeeld en hij weer terug is bij 1.

Hoe kan ik dit voor elkaar krijgen?

rackdoll
%Europe/Berlin %381 %2005, 10:08
om dit voor elkaar te krijgen moet je een if... statement erin zetten:

mc.onPress = function(){
if(tween == true){
gotoAndPlay("tween")
}

dan moet je wel eerst tween op true aangeven...
als hij false is.....dat geef je aan in frames na 35...dan kan hij dat niet doen...
snappie? :D

digitalecartoons
%Europe/Berlin %402 %2005, 10:39
Ok, dus als volgt?

mc.onpress function(){
if checktween==true{
gotoandplay ("tween");
}
}
mc.onrelease function(){
if checktween==true{
trace ("geklikt en released");
}
}
stop();

En voor het gedeelte met label "tween":
20 var checktween;
checktween=="false";

21...48 = motion tween gedeelte

49 var checktween;
checktween=="true";

Even denken hoor :) Voor het onpress deel klinkt het logisch, alleen als checktween true is wordt "tween" afgespeeld.
Zit alleen nog te twijfelen op onrelease. Want stel ik release op mc als flash midden in "tween" zit. Dan is checktween false en wordt de Trace actie dus niet uitgevoerd. Maar als checktween eenmaal true is, is die onrelease tijdens het afspelen van "tween" inmiddels al voorbij en zou de Trace actie alsnog niet worden uitgevoerd? Of denk ik verkeerd? :D

digitalecartoons
%Europe/Berlin %422 %2005, 11:08
Of dan zoiets? (if in onrelease was wellicht overbodig)

var checktween;
var checkrelease;
mc.onpress function(){
if checktween==true{
gotoandplay ("tween");
}
}
mc.onrelease function(){
checkrelease="true";
}
stop();

En dan bij "tween";
20 checktween=="false";
// 21...48 = motion tween gedeelte
49 checktween=="true";
if checkrelease=="true"{
trace ("geklikt en release");
checkrelease="false";
}

theFlashWizard
%Europe/Berlin %735 %2005, 18:39
kan het niet zo:

mc.onRelease = function(){
gotoandplay ("tween");
delete this.onRelease
}

dan verwijdert hij de onRelease na klikken en wanneer je weer langs het 1ste frame komt maakt hij hem weer aan..