2009-07-03 3 views
0

ich einen Clip haben, die das Click-Ereignis mit on (release) fängt {....}Ereignis in Flash sprudelnden

In diesem Clip habe ich einen Knopf, der auch Klicks mit on (release) {fängt. ..}

Das Problem ist, dass die Schaltfläche nie das Release-Ereignis erhält. Ich glaube, dass das Ereignis nicht durchgeblubbert wird, sondern vom übergeordneten Container abgefangen und gehandhabt wird. Wie kann ich es zum Knopf sprudeln lassen (ich benötige beide Ereignisse, um eine auszulösen, während die andere eine Seite öffnet).

Antwort

2

Die Tatsache, dass Sie die on (release) -Syntax verwenden, sagt mir, dass Sie einen wirklich alten Programmierstil verwenden, plus Sie kodieren für as2. Wenn das falsch ist, sorry. Wenn das stimmt, schlage ich ernsthaft vor, dass Sie, wenn Sie können (einige Clients benötigen aus irgendeinem Grund immer noch Flash 8 kompatible swfs), versuchen sollten, eine Lösung in AS3 anstatt in der älteren AS2 zu finden. Meiner Meinung nach ist es eine Zeitverschwendung, as2 zu lernen, wenn as2 auf dem richtigen Weg ist. Ich weiß es zu schätzen, dass Sie manchmal die älteren Methoden verwenden müssen.

Also das ist weder hier noch dort in Bezug auf die Frage. Nachdem Sie ein interaktives Element in ein anderes interaktives Element eingefügt haben, können Sie Ereignisse, die auf dem inneren Element auftreten, nicht mehr verarbeiten. Grundsätzlich wird das Mausereignis bei der ersten Komponente behandelt, bei der Ereignisse registriert sind, also auch direkt darunter. Dann hört die Klickaktion auf, nach weiteren Elementen zu suchen. Es verhindert, dass Sie mehrere Ereignisse mit einem Klick erhalten.

Eine Möglichkeit, dies zu lösen (obwohl Schaltflächen in Schaltflächen eine sehr schlechte Usability-Entscheidung ist), wäre ein nicht interaktiver Container n.b. für as2 ein MovieClip, und fügen Sie dann zwei Schaltflächen in diesem, eine größer als die andere mit der kleineren oben. Das bedeutet, dass Sie Klicks auf beide Elemente separat verarbeiten können.

this helps

0

Versuchen Sie, Event-Listener sowohl dem Clip als auch der Schaltfläche hinzuzufügen.

0

Code offensichtlich AS2 ist, da AS3 diese Syntax nicht mehr unterstützt ...

Ereignis arbeitet sprudeln nur in AS3 ... in AS2, wenn ein Movieclip/Taste hat ein registrierter Handler/Callback für jedes Mausereignis, dann werden keine Kinder jemals irgendwelche Ereignisse empfangen ...

Ich schrieb einmal eine Bibliothek für AS2, die das Problem löst ... wenn Sie wirklich an AS2 bleiben müssen, dann Ich kann es suchen ... aber wie James sagte, Sie sollten wirklich nicht ...

greetz

zurück2dos