Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-03-2005, 10:51   #1 (permalink)
...
 
Benutzerbild von flash bier
 
Registriert seit: Nov 2001
Beiträge: 1.227
delete this.onEnterFrame bei onClipEvent(enterFrame)

Hallo FF,

wenn ich einem MC ein onClipEvent(enterFrame)-Handler gebe, funktioniert ein "delete this.onEnterFrame" nicht. Warum nicht und wie kann ich dieses Event dann doch auch löschen.
Worin besteht denn der Unterschied bei einer Handler-Zuweisung per MC.onEnterFrame=function() und onClipEvent(enterFrame) ?

DANKE

MfG flash bier
__________________
Schweig oder sprich Worte, die besser sind als Schweigen !
flash bier ist offline   Mit Zitat antworten
Alt 04-03-2005, 11:23   #2 (permalink)
nobody is perfect
 
Benutzerbild von Decrone
 
Registriert seit: Apr 2002
Ort: Bremen
Beiträge: 3.049
Hi @Flash Bier....Prost

Der Unterschied ist halt bei „onEnterFrame()-Event“, dass Du Ihn wieder löschen kannst, also die Rückruf-Funktion wird dadurch verhindert!
ActionScript:
  1. //Aufruf
  2. this.onEnterFrame = function (){
  3. }
  4. //löschen
  5. delete this.onEnterFrame;

Den „onClipEvent (enterFrame)-Event-Handlers“ würde ich so nicht anwenden. Ich habe früher immer ein MC erstellt und auf Frame1-2 loopen lassen, wenn ich diesen loop nicht mehr gebraucht habe, dann hab ich Ihn einfach auf Frame3 stoppen lassen!

bye

[EDIT]
der „onClipEvent (enterFrame)-Event-Handlers“ gibt keine Rückruf-Funktion und dadurch kann er auch nicht gelöscht werden, weil er auf dem Clip liegt!
Wenn ich das jetzt richtig verstanden habe...
__________________
FF Unterstützen! Erste Hilfe! häufig gestellten Fragen
...................... ............... ................................

Geändert von Decrone (04-03-2005 um 11:28 Uhr)
Decrone ist offline   Mit Zitat antworten
Alt 04-03-2005, 11:27   #3 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
MC.onEnterFrame=function() ist ein Zeitleistenevent, das andere ein Clipevent. Zeitleistenevents kannst du - wie der Name schon sagt - auf die Hauptzeitleiste legen, vorausgesetzt, der MC hat einen Instanznamen, damit Flash ihn im Objektpfad auch wiederfindet. Vorteil ist, dass du auf einem Frame alle Event-Scripte sammeln kannst.

Einen Clipevent kannst du nur auf einen Clip legen mit dem Nachteil, dass du deine Scripte erst findest, wenn du die Clips angeklickt hast. Vorteil ist, dass du keinen Instanznamen benötigst, weil der Clip selbst seinen Objektpfad kennt.

Wo du dich im Pfad befindest, kannst du bspw. ganz einfach mit einem trace("this="+this) im Testmodus herausfinden. Teste das doch einfach mal vor dem Löschen deines onEnterFrame-Events.
  Mit Zitat antworten
Alt 04-03-2005, 11:49   #4 (permalink)
...
 
Benutzerbild von flash bier
 
Registriert seit: Nov 2001
Beiträge: 1.227
Erst mal Danke für Eure Antworten, und Prost Mahlzeit

Sehe ich das nun richtig, dass man allgemein ClipEvents per AS nicht löschen kann, weil diese eben keine Rückruf-Funktion besitzen ? (Was zum Henker ist nun eine Rückruf-Funktion)

MfG flash bier
__________________
Schweig oder sprich Worte, die besser sind als Schweigen !
flash bier ist offline   Mit Zitat antworten
Alt 04-03-2005, 12:21   #5 (permalink)
nobody is perfect
 
Benutzerbild von Decrone
 
Registriert seit: Apr 2002
Ort: Bremen
Beiträge: 3.049
Hier mal ein Auzug aus der heiligen Bibel "Mook"

Zitat:
Events (Ereignisse)

Movieclip-Instanzen unterstützen Event-Handler, die automatisch auf vordefinierte Events reagieren (z.B. Maus- oder Tastaturbedingung oder das Abspielen von Filmen). Seit Flash 6 stehen Button-Events (z.B. onPress(), onRelease() und onRollOver()) auch für Movieclips zur Verfügung, allerdings nicht für Hauptzeitleiste (_root). Movieclip-event-Handler konnen auf folgender Weise erstellt werden:

• indem man in der Entwicklungsphase einen onClipEvent()-Block direkt einer Movieclip-Instanz zuweist

• indem man in der Entwicklungsphase einen on()-Block auf Button-Art direkt einer Movieclip-Instanz zuweist

• indem man mit ActionScript der zugehörigen Event-Eigenschaft eine Rückruf-Funktion zuweist

Beispiel:
ActionScript:
  1. //ein onClipEvent()-Block
  2. onClipEvent (enterFrame) {
  3.     //anweisung
  4. }
  5.  
  6. //ein on()-Block
  7. on (release) {
  8.     //anweisung
  9. }
  10.  
  11. //zwei Rückruf-Funktionen
  12. clip_mc.onEnterFrame = function () {
  13.     //anweisung
  14. }
  15.  
  16. clip_mc.onPress = function () {
  17.     //anweisung
  18. }

man hat quasi kein Einfluss drauf ein onClipEvent()-Block zu löschen

Nur wie schon oben erwähnt. Entweder über Frame-Loop, den Script abarbeiten lassen und wenn man Ihn nicht mehr benötigt dann halt stoppen oder im onClipEvent()-Block mit einer if-Schleife arbeiten, obwohl das ja kein direktes löschen der onClipEvent() ist, sondern halt über if-Schleifen gesteuertes Scriptabarbeiten ist

bye
__________________
FF Unterstützen! Erste Hilfe! häufig gestellten Fragen
...................... ............... ................................

Geändert von Decrone (04-03-2005 um 12:40 Uhr)
Decrone ist offline   Mit Zitat antworten
Alt 04-03-2005, 15:46   #6 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 85
Auch wenn dat n bissi OT is, aber ich versteh eh nicht wieso man AS af MCs und dergleich legt statt auf die Zeitleiste?

Mich würd' das total kirre machen wenn ich ständig nach meinem AS suchen muss

Oder gibt's da irgendwelche geilen Tricks die das Ganze sinnvoll machen

Wie gesagt ich persönlich hab mein script immer auf _level0 frame 1 liegen wenn's nun nicht aus ner .as Datei kommt. Dadurch erledigen sich dann auch solche Probleme wie oben beschrieben.
__________________
_____________________
Es gibt hier nichts zu sehen, bitte gehen sie weiter :)

Geändert von Tango2k3 (04-03-2005 um 15:48 Uhr)
Tango2k3 ist offline   Mit Zitat antworten
Alt 04-03-2005, 16:37   #7 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
@tango2k3: ich pflichte dir voll bei, was die Vorgehensweise betrifft. Clipevents kommen halt noch aus der Flashvergangenheit und sind spätestens seit F6 total überflüssig. Aber MM will wohl die Abwärtskompatibilität bewahren...
  Mit Zitat antworten
Alt 04-03-2005, 16:53   #8 (permalink)
nobody is perfect
 
Benutzerbild von Decrone
 
Registriert seit: Apr 2002
Ort: Bremen
Beiträge: 3.049
Zitat:
Zitat von agedoubleju
@tango2k3: ich pflichte dir voll bei, was die Vorgehensweise betrifft. Clipevents kommen halt noch aus der Flashvergangenheit und sind spätestens seit F6 total überflüssig. Aber MM will wohl die Abwärtskompatibilität bewahren...
jep sehe ich auch so
__________________
FF Unterstützen! Erste Hilfe! häufig gestellten Fragen
...................... ............... ................................
Decrone ist offline   Mit Zitat antworten
Alt 04-03-2005, 17:47   #9 (permalink)
...
 
Benutzerbild von flash bier
 
Registriert seit: Nov 2001
Beiträge: 1.227
Mach das selbst auch immer auf der Zeitleiste, warum ich das nun auch nicht gecheckt habe.
Hab aber hier eine externe fla zum bearbeiten bekommen und da sitzt der Event-Handler eben auf den Mcs...

MfG flash bier
__________________
Schweig oder sprich Worte, die besser sind als Schweigen !
flash bier ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 02:03 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele