[MX] Scriptumwandlung F5 -> MX

Hallo,

ich hänge jetzt mal die .fla an. Vielleicht könnt Ihr ja so mehr mit anfangen. In der .fla ist das Script auf dem MC.

Liebe Grüße,
Feyiama
 

Anhänge

  • problem.zip
    31 KB · Aufrufe: 9
Immer dran denken:

Sobald du externen Inhalt in einen MC lädst, wird dieser vollständig geleert und auch EventHandler wie onEnterFrame verschwinden aus dem Arbeitsspeicher. :)

Eine Lösung wäre, den Handler nicht auf dem Objekt laufen zu lassen, welcher über die Methode loadMovie() gefüllt wird, sondern von außen wirken zu lassen, das ginge bspw. in deinem Film so:
PHP:
this.breite = 160;
this.hoehe = 120;

this.onEnterFrame = function() {
	var faktor = this.container._width/this.breite;
	this.container._width /= faktor;
	this.container._height /= faktor;
	this.container._y = this.hoehe - this.container._height;
}

this.container.loadMovie("big.jpg");
hth,
Geist
 
Hi zusammen,

ja aber müsste das dann nicht auch bei der alten Methode der Fall sein? Das er das Script löscht. Oder was versteh ich daran jetzt nicht.

@Skyla: Gelesen hab ich's schon, nur wie gesagt, es hat mich
a)ziemlich irritiert, dass es in der alten "Schreibweise" funktioniert. Wie oben schon gefragt: müssten die Scripte da nicht auch gelöscht werden?
Und b)nochmal eine ganz blöde Frage: Die Hilfe von meinem Flash gibt aus:

MovieClip.onData
Beschreibung:


Ereignisprozedur; wird aufgerufen, wenn ein Movieclip Daten von einem loadVariables- oder loadMovie-Aufruf empfängt.

Sie müssen eine Funktion definieren, die beim Aufruf des Ereignisses ausgeführt wird.

Wenn jetzt aber doch die Eventhandler beim Laden von externen Inhalt in einen MC gelöscht werden, wozu gibt es dann bitte diesen Eventhandler???

Grüße,
Feyiama
 
Nunja, du hast quasi vom Gedanken her keinen großen Fehler drin - Handler ist Handler und gehört zu einem Objekt.

Was aber entscheidend ist, ist die Tatsache, dass das EventHandler-Modell von Flash 5 ein statisches war, während das von Flash MX vielmehr dynamisch anzusehen ist - du kannst ja Handler referenzieren, Funktionen dynamisch implementieren und und und...

Nach dem Modell von F5 gibt es keine Komplikationen damit beim Laden von externen Inhalten, auch beim Export für den 6er-Player mit F5-EventHandler klappt das ganze wunderbar, die werden ja trotzdem weiterhin interpretiert und funktionieren.

Nach 6er-Manier des EventHandlers mit Export für den 6er-Player klappt das aber eben nicht, da sich die Prinzipien nicht so vertragen, da hat Macromedia schon ein wenig gepennt.

Ist genauso wie mit dem onLoad-Handler für Objekte, der ja eigentlich beim Initialisieren des Objektes schießt, das Objekt beim Laden des Filmes jedoch schon lange initialisiert wurde, ehe ein Script auf Frame 1 der Hauptzeitleiste dem Objekt überhaupt einen Handler zuweisen würde. :)

Um's nochmal etwas näherzubringen:

Betrachten wir die EventHandler auf Objekten in Flash MX und Flash 5.
Nach Flash MX sind EventHandler nichts weiter als Eigenschaften des Objektes, wird ja aus der Praxis recht einleuchtend, wenn du dir die Syntax anschaust:
PHP:
objekt.onEreignis = function() { ... }
Wir haben mit nichts anderem zu tun, als einer Eigenschaft des Objektes, welcher eine taugliche Funktion zugeordnet wird, implementiert eben.

Blicken wir nun mal auf Flash 5, so lagen die EventHandler zwar auch auf den Objekten, konnten aber nicht so recht als Eigenschaften des Objektes angesehen werden, da besteht der wesentliche Unterschied der Modelle.
Sie konnten weder angesprochen werden, noch manipuliert - dadurch ergibt sich dann einfach der Umstand, dass durch das Laden von sekundärem Inhalt bei Flash5-zugeordneten Handlern keine Änderung eintritt, da diese eben keine Eigenschaften sind.
Beim MX-Modell hingegen tritt genau dieser Fall ein, die Handler werden als Eigenschaften erkannt und einfach mit weggekehrt.

Dass die EventHandler weiterhin in der internen Hilfe vorhanden sind, dort jedoch in einem nicht-funktionablem Zusammenhang erscheinen, nämlich in der MX-Form, ist ein Manko der Flash-Hilfe, welches wesentlich irritiert - da muss ich dir vollkommen Recht geben. :)

Vielleicht ist es nun klarer geworden - schieß bei Fragen einfach drauflos.

Geist
 
Hallo Geist,

dank Dir, ich glaube jetzt hab ich's kapiert. :)

Danke für die Mühen :)

Liebe Grüße,
Feyiama

hmm...danke danke...naja, doppelt gemoppelt hält besser. ;)
 

Neue Beiträge

Zurück