PDA

Volledige versie bekijken : muis probleempje


Sander
%Europe/Berlin %662 %2005, 16:53
Ik wil na het klikken op de linker muisknop dat er een "movie clip" in dat filmje 1 keer gaat spelen. Hoe doe ik dat?

TheDutch
%Europe/Berlin %664 %2005, 16:56
MovieClip.onRelease = function(){
// De code voor het starten van het filmpje
}

Niek_M
%Europe/Berlin %664 %2005, 16:56
Zoiets??

on (release) {
jemovieclipnaam.gotoAndPlay(2);
}

Sander
%Europe/Berlin %676 %2005, 17:14
beide willen niet werken, wat doe ik verkeerd, ben namelijk pas kort bezig met flash!

TheDutch
%Europe/Berlin %684 %2005, 17:25
Weet je uberhaupt hoe je je filmpje kunt gaan afspelen?

Sander
%Europe/Berlin %689 %2005, 17:32
ja hoor, ben niet helemaal dom :P

TheDutch
%Europe/Berlin %691 %2005, 17:36
Dan zou je met één van de codes hierboven uit de voeten kunnen :).
Hoe heb je de code nu geplaatst?

Sander
%Europe/Berlin %695 %2005, 17:41
on (release) {
pistool.gotoAndPlay(2);
}

Dit heb ik dan in het action script gedeelte van de movie clip pistool geplaats, in het eerste frame van van de movie clip staat stop(); om het te laten wachten op mijn muisklik ergens op het scherm. Toch gebeurd er niets. (Ook geen ERROR)

Wat doe ik dan verkeerd?

TheDutch
%Europe/Berlin %721 %2005, 18:19
on (release) {
gotoAndPlay(2);
}

Je zit namelijk al in de MovieClip "pistool" :).

Roenes
%Europe/Berlin %739 %2005, 18:44
Voor zover ik het begrijp wil sander dat het niet uit maakt waar je klikt, zolang je maar ergens klikt. Dat werkt dus niet met de onRelease maar met MouseListener: (code gewoon op een frame van je hoofdtijdslijn zetten)

var ml = new Object();
ml.onMouseDown = function()
{
jouwMC.play(); //of jouwMC.gotoAndPlay(2);
Mouse.removeListener(ml);
}
Mouse.addListener(ml);

theFlashWizard
%Europe/Berlin %749 %2005, 18:59
de oplossing ligt aan een paar dingen.. wil je echt op een object klikken voordat hij gaat spelen? die movieclip zelf of een aparte button?
of mag het gewoon int algemeen de linker muisknop zijn?

TheDutch
%Europe/Berlin %761 %2005, 19:16
Sander, kom eens met een duidelijk verhaal ;).

Sander
%Europe/Berlin %776 %2005, 19:37
Ik zal het proberen uit te leggen. Ik heb een soort van mannetje met een pistool (mc =pistool). Het plaatje dat je ziet is een animatie van het schieten van dat wapen. Deze staat bij het laden van de movie op stop(); (de mc pistool dus). Wanneer je op je linkermuisknop drukt, moet de animatie gaan werken en het schieten laten zien.

Kortom bij een muisklik ERGENS op mijn scherm moet de animatie gaan spelen (en dat is dus in frame 2 van mc pistool).

TheDutch
%Europe/Berlin %778 %2005, 19:40
_root.onMouseDown = function(){
jouwMC.gotoAndPlay(2);
}

TheDutch
%Europe/Berlin %779 %2005, 19:41
...........................

theFlashWizard
%Europe/Berlin %794 %2005, 20:04
ey roenes
je hebt toch eigenlijk genoeg aan

_root.onMouseDown = function(){
jouwMC.gotoAndPlay(2);
}

? moet je echt een nieuw object maken en met n listener werken zoals jij net zegt?

Sander
%Europe/Berlin %801 %2005, 20:14
hij doet het, was gewoon vergeten een instant name te geven, beetje dom van mezelf :P :) Toch bedankt!

TheDutch
%Europe/Berlin %807 %2005, 20:22
ey roenes
je hebt toch eigenlijk genoeg aan

_root.onMouseDown = function(){
jouwMC.gotoAndPlay(2);
}

? moet je echt een nieuw object maken en met n listener werken zoals jij net zegt?
Dat hoeft dus niet :)

Tommyfied
%Europe/Berlin %840 %2005, 21:10
Het voordeel van een listener is dat deze altijd triggert zodra je een mouseDow waar dan ook doet.
Als je _root.onMouseDown doet dan krijg je problemen als je nog andere mouseDown events hebt op andere mc's oid. Dan werkt een van de twee niet of niet goed. Experimenteer er maar eens mee.

theFlashWizard
%Europe/Berlin %848 %2005, 21:21
aha.. owke.. bij onRelease's enzo.. Ksnap em.. :)

TheDutch
%Europe/Berlin %849 %2005, 21:23
Het voordeel van een listener is dat deze altijd triggert zodra je een mouseDow waar dan ook doet.
Als je _root.onMouseDown doet dan krijg je problemen als je nog andere mouseDown events hebt op andere mc's oid. Dan werkt een van de twee niet of niet goed. Experimenteer er maar eens mee.
Dit maakt niet uit hoor ;).
Wanneer je op een andere knop/onRelease/whatever klikt worden beide getriggerd

Tommyfied
%Europe/Berlin %860 %2005, 21:38
Wanneer je op een andere knop/onRelease/whatever klikt worden beide getriggerd

Moet je voor de grap eens een lege .fla openen. Een MovieClip maken met de instancename test en dan deze code op frame 1 plakken:

_root.onMouseDown = function ()
{
trace("_root.onMouseDown");
};

_root.test.onMouseDown = function ()
{
trace("_root.test.onMouseDown");
};


Klik dan eens naast de button en dan op de button (of andersom dat maakt niet uit) en kijk wat er gebeurt.
Lekker buggy he?

theFlashWizard
%Europe/Berlin %868 %2005, 21:50
hmm dan maak je 2 onMouseDown's.. wanneer is dat nou nuttig :S
Kbedoel.. onMouseDown is onMouseDown..

TheDutch
%Europe/Berlin %872 %2005, 21:56
............

Roenes
%Europe/Berlin %915 %2005, 22:58
moet je echt een nieuw object maken en met n listener werken zoals jij net zegt?Listeners werken over het algemeen goed voor dit soort dingen en je hebt 1 centrale plaats waar je je mouse events afhandelt. Zo kun je dus in hetzelfde object meerdere mouse events afvangen (mouseDown, mouseUp, mouseMove).

Ik weet niet of 1 van de 2 manieren echt beter is en in dit geval zou de andere gegeven code ook naar behoren werken. Dus in deze situatie maakt het niet uit.

1 voordeel is wel: voor keys kun je ook een listener gebruiken. Hierdoor kun je dus op dezelfde manier je keys afhandelen als de muis. Dit zorgt voor een stukje consistentie :)