Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24-01-2004, 19:18   #1 (permalink)
oEF(etischist)
 
Registriert seit: Dec 2003
Ort: muc
Beiträge: 664
zu schnell?

Hallo,

ich habe eine prototype-Funktion geschrieben, die auch funktioniert.
Verkürzt wiedergegeben!
ActionScript:
  1. MovieClip.prototype.negativ_fade = function() {
  2. //..
  3.     this.onEnterFrame = function() {
  4. //...
  5.         if (/*blablabla*/) {
  6.             delete this.onEnterFrame;
  7.         }
  8.     };
  9. };
Wie gesagt, sie funktioniert auch, das ist getestet!
Bei Click auf einen Button lade ich in einen MC ein Bild, dann führe ich die obige Funktion auf
ActionScript:
  1. on(press)
  2. {
  3.     loadMovie("bild/1.jpg",bildContainer);
  4. bildContainer.negativ_fade();   
  5. }
und da beginnt das Problem!
Es klappt nicht. Wenn ich den Aufruf der zweiten Funktion auf einen anderen Button lege klappt es.
Wenn ich es so wie oben lasse und den debugger einschalte, dann klaptts auch, nur im "normalen" Ablauf klappts halt nicht.
Warum nicht?
Ist Flash zu schnell um den Code zu verarbeiten?

In Java ist mir sowas auch mal passiert, da musste ich das Programm warten lassen.
Bin für Hinweise und Ideen dankbar.

Grüße,
solo
soloFlash ist offline   Mit Zitat antworten
Alt 24-01-2004, 20:24   #2 (permalink)
wissbegierig
 
Registriert seit: Nov 2003
Ort: Hamburg
Beiträge: 206
Soweit ich weiß, mußt Du die Funktion so zuweisen:

ActionScript:
  1. bildContainer.negativ_fade; // ohne ()
  2.  

Kann mich auch irren aber bei mir hat es so immer geklappt.
__________________
Gruß
PIXIX
PIXIX ist offline   Mit Zitat antworten
Alt 24-01-2004, 20:26   #3 (permalink)
*why ... ??
 
Benutzerbild von ichagx03
 
Registriert seit: Aug 2003
Beiträge: 451
ich weiss nicht ist das falsch .. sagst trotzdem mal ..

kannst die function erst aufrufen wenn der film geladen ist ..
also musst du das überprüfen ..
__________________
grues tb
-----------------------------
--> ich bin nicht du, denn du bist nicht ich
-----------------------------
--> keine gahrantie für die richtiege Rechtschribunhg.
-----------------------------
.:: Schau da !!
ichagx03 ist offline   Mit Zitat antworten
Alt 24-01-2004, 20:32   #4 (permalink)
r0b
Neuer User
 
Benutzerbild von r0b
 
Registriert seit: Feb 2002
Ort: Hamburg
Beiträge: 1.281
Durch den loadMovie wird der mc, in den du lädst zerstört. Oder sagen wir's mal so: Du versuchst einem jpg zu sagen es solle eine function ausführen. Da jpg's ja eine liebe und nette Sache sind, aber mit function's nichts anfangen können, klappt das ganze nicht.

Also eher sowas:

ActionScript:
  1. on(press)
  2. {
  3.         this.bildContainer.createEmptyMovieClip ("dummy" , 2);
  4.         this.bildContainer["dummy"].loadMovie("bild/1.jpg" , 2);
  5.         this.bildContainer.negativ_fade();
  6. }
Somit hast du einen extra Container, und du führst die function auf den übergeordneten mc aus.
Hoffe das hilft dir weiter.

Nachtrag:
Oder der bildContainer ist schon das, was ich mit dem dummy gemeint habe, dann rufst du einfach in deiner ursprünglichen Version this.negativ_fade(); auf.

mfg

Robert
__________________
robertreich.de v4 | Pixelfonts & FlashSite Tutorial
Friends of ED - Byte Size Flash MX: Adventures in Optimization

"Give a man a fish, and he eats for a day... Show him how to fish, and he eats for a lifetime."

Geändert von r0b (24-01-2004 um 20:37 Uhr)
r0b ist offline   Mit Zitat antworten
Alt 24-01-2004, 20:51   #5 (permalink)
oEF(etischist)
 
Registriert seit: Dec 2003
Ort: muc
Beiträge: 664
Danke Robert,

so klappts!!!
Danke auch für Deine Erklärungen.
Nur verstehe ich eins nicht, im Debugger hat es bei mir geklappt...
Hab auch erst daran gedacht, dass der Film wohl noch nicht vollständig geladen ist, aber da ich den Code bei Buttonklick ausführe, kann das ja nicht sein.
Also, wenn ich den Debugger an habe, dann klappts, schalkte ich ihn aus, dann nicht...
Irgendwie ein Rätsel, aber mit dem Dummy-Clip klappts.

Danke,
solo
soloFlash ist offline   Mit Zitat antworten
Alt 24-01-2004, 21:03   #6 (permalink)
r0b
Neuer User
 
Benutzerbild von r0b
 
Registriert seit: Feb 2002
Ort: Hamburg
Beiträge: 1.281

Schön das ich dir helfen konnte.

Was den Debugger angeht... Gute Frage. Könnte ein Timingproblem sein. In der Testumgebung sind die Sachen sofort geladen, da reagiert der Code dann zuweilen anders als online.

mfg

Robert
__________________
robertreich.de v4 | Pixelfonts & FlashSite Tutorial
Friends of ED - Byte Size Flash MX: Adventures in Optimization

"Give a man a fish, and he eats for a day... Show him how to fish, and he eats for a lifetime."
r0b ist offline   Mit Zitat antworten
Alt 25-01-2004, 11:28   #7 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
die prototypen bleiben bestehen,
der bildcontainer ist physisch noch nen movieclip, gefüllt mit ner jpg, da wurde nix zerstört.
die methode negativ_fade ist somit noch vorhanden

was macht negativ fade?erstellts nen onENterFrame vent? da haben wir unser probleme

du gibst flash die anweisung lade in den bildcontainer etwas rein, im selben moment sagste auch setze diesen onEnterFrame event.
da die anfrage erst ms später beim server ankommt- wird auch erst ab diesem moment geladen

geladen bedeutet, alles in dem bild_container wird gelöscht
jeder onEnterFrame event und jede variable.

somit ist dein aufruf nichtig gemacht
du brauchst nen preloader außerhalb des bildcontainers der dir diesen aufruf abnimmt
denn dieser weiß, dass das bild da ist

offline funzt es weil die anfrage lokal schneller ist,
obwohl dass ziemlich schnell wäre

deluxe

Geändert von Deluxe (25-01-2004 um 11:29 Uhr)
Deluxe ist offline   Mit Zitat antworten
Alt 25-01-2004, 11:49   #8 (permalink)
r0b
Neuer User
 
Benutzerbild von r0b
 
Registriert seit: Feb 2002
Ort: Hamburg
Beiträge: 1.281
Zitat:
Geschrieben von Deluxe
die prototypen bleiben bestehen,
der bildcontainer ist physisch noch nen movieclip, gefüllt mit ner jpg, da wurde nix zerstört.
Das ist richtig. Allerdings werden alle Daten innerhalb des mc's zerstört. Sowohl ein onEnterFrame, genauso wie ein onLoad oder sonstige Variablen und Objekte. Offline ist das "laden" meistens so fix, das das Bild komplett geladen ist, bevor der Funktionsaufruf kommt. Dann ist alles super.
Online sieht's da ganz anders aus. Die Zuweisung des fade() ist schon gemacht ist, bevor das jpg ankommt und der Aufruf geht verloren.

mfg

Robert
__________________
robertreich.de v4 | Pixelfonts & FlashSite Tutorial
Friends of ED - Byte Size Flash MX: Adventures in Optimization

"Give a man a fish, and he eats for a day... Show him how to fish, and he eats for a lifetime."
r0b ist offline   Mit Zitat antworten
Alt 25-01-2004, 11:53   #9 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
ich bevorzuge das rhetorische konzept ganz unten anzufangen und mich dann zum problem hinzutasten

das nix zerstört bezog sich auf die "natur" des mcs, er ist weiterhin ein mc, ob nun variablen gelöscht wurden, davon sagte ich nichts, darauf komme ich später zu sprechen
Zitat:
...geladen bedeutet, alles in dem bild_container wird gelöscht
jeder onEnterFrame event und jede variable...
schonmal den gesamten text gelesen?

deluxe
Deluxe ist offline   Mit Zitat antworten
Alt 25-01-2004, 12:19   #10 (permalink)
r0b
Neuer User
 
Benutzerbild von r0b
 
Registriert seit: Feb 2002
Ort: Hamburg
Beiträge: 1.281
Ey... es ist Sonntag... Habe erst meinen ersten Kaffee hinter mir.
Hab's nochmal gelesen. Hast Recht. Nur diese Stelle war etwas mißverständlich.
Zitat:
Geschrieben von Deluxe
somit ist dein aufruf nichtig gemacht
Du meinst den Aufruf mit extra mc, und fade() dann auf _parent, gell? Ich glaube da bin ich irgendwo hängengeblieben. Nichts für ungut...

mfg

Robert
__________________
robertreich.de v4 | Pixelfonts & FlashSite Tutorial
Friends of ED - Byte Size Flash MX: Adventures in Optimization

"Give a man a fish, and he eats for a day... Show him how to fish, and he eats for a lifetime."
r0b ist offline   Mit Zitat antworten
Alt 25-01-2004, 12:26   #11 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
genau dass meine ich
sonntag?morgens?alles klar verziehen *g

deluxe
Deluxe ist offline   Mit Zitat antworten
Alt 25-01-2004, 12:32   #12 (permalink)
r0b
Neuer User
 
Benutzerbild von r0b
 
Registriert seit: Feb 2002
Ort: Hamburg
Beiträge: 1.281
__________________
robertreich.de v4 | Pixelfonts & FlashSite Tutorial
Friends of ED - Byte Size Flash MX: Adventures in Optimization

"Give a man a fish, and he eats for a day... Show him how to fish, and he eats for a lifetime."
r0b ist offline   Mit Zitat antworten
Alt 26-01-2004, 04:55   #13 (permalink)
oEF(etischist)
 
Registriert seit: Dec 2003
Ort: muc
Beiträge: 664
Morgen,

also, wenn ich Euch richtig verstehe, dann soll ich einen PreLoader das Laden übernehmen lassen, und erst wenn der fertig ist, dann kommt mein negativ_fade()? OK, werde ich machen.

Kurze Rückfrage: prototypes können auch Werte zurückgeben, oder?

Nochmals Danke,
solo
soloFlash 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 15:42 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele