ERLEDIGT
NEIN
NEIN
ANTWORTEN
15
15
ZUGRIFFE
668
668
EMPFEHLEN
-
Hallo!
Sorry für die nicht viel aussagende Überschrift, aber mir ist nix besseres eingefallen. "Früher", also in Flash5 hat man ja Scripte auf einen MC legen können. Das sah dann folgendermaßen aus:
Jetzt in FlashMX kann man das ja direkt in die Hauptzeitleiste packen mit folgendem Script:PHP-Code:onClipEvent (enterFrame) {
faktor = _width/_root.breite;
_width = _width/faktor;
_height = _height/faktor;
_y=_root.hoehe-_height;
}
Ich habe in meinem Fall beide Schreibweisen ausprobiert. Mit this und _parent und allem rumprobiert, ob es vielleicht nur an den Pfadangaben liegt. Komischerweise funktioniert das Letztere, sprich die neuere Version nicht. Wo liegt mein Fehler. Findet den jemand von Euch vielleicht? Ich hab mich schon dumm und dämlich gesucht.PHP-Code:meinMC.onEnterFrame = function() {
faktor = _width/_root.breite;
_width = _width/faktor;
_height = _height/faktor;
_y=_root.hoehe-_height;
}
Liebe Grüße und ein dickes Danke,
FeyiamaGeändert von Fey (28.04.03 um 16:10 Uhr)
:: Der Mensch bringt sogar die Wüsten zum Blühen. Die einzige Wüste, die ihm noch Widerstand leistet, befindet sich in seinem Kopf. ::
:: Das Unsympathische an den Computern ist, daß sie nur ja oder nein sagen können, aber nicht vielleicht. ::
:: Die Frauen machen sich nur deshalb so hübsch, weil das Auge des Mannes besser entwickelt ist, als sein Verstand. ::
:: Der Mensch hat das Recht auf seine eigene Meinung, aber er hat keinen Anspruch darauf, das andere sie teilen. ::
-
Versuchs mal so :
Ich weiß nich ob das jetzt ein Übtertragungefehler war, aber du mußt bei on... = function()PHP-Code:var breite =30;
var hoehe = 10;
this.test.onEnterFrame = function() {
faktor = _width/_root.breite;
this. _width = _width/faktor;
this._height = _height/faktor;
this._y=_root.hoehe-_height;
};
{
}; dieses Simikolon setzen
man sollte sich auch angewöhnen this vor die eigenschaften zu setzten
also, bei mit klapptsNichtwissen ist liegt in dem Glauben, dass wir die ganze Wahrheit sehen
-
Hi philyphil,
ich habs mit this probiert, mit _parent...ging nicht. Die Höhe und die Breite sind bereits im _root definiert.
Das Semikolon war ein Übertragungsfehler.
Grüße,
Feyiama:: Der Mensch bringt sogar die Wüsten zum Blühen. Die einzige Wüste, die ihm noch Widerstand leistet, befindet sich in seinem Kopf. ::
:: Das Unsympathische an den Computern ist, daß sie nur ja oder nein sagen können, aber nicht vielleicht. ::
:: Die Frauen machen sich nur deshalb so hübsch, weil das Auge des Mannes besser entwickelt ist, als sein Verstand. ::
:: Der Mensch hat das Recht auf seine eigene Meinung, aber er hat keinen Anspruch darauf, das andere sie teilen. ::
-
29.04.03 01:58 #4
- Registriert seit
- May 2002
- Ort
- _root
- Beiträge
- 1.342
Hi fey
ergibt _root.x=10PHP-Code:clip.onPress=function(){
x=10;
}
und ist folglich nich das gleiche wie
weil dies führt zu: _root.clip.x=10;PHP-Code:clip.onPress=function(){
this.x=10;
}
g skyla
-
29.04.03 07:31 #5
Genau, eine auf dem Wege implementierte Handlerfunktion zielt über this auf das Objekt, für welches sie als Methode den Kopf hergibt.

Und falls du mal eine _parent-Instanz aus einem Objekt heraus mit MX-EventHandlern ansprechen willst, dann solltest du dir _parent nicht so alleine merken, sondern fast stets über this._parent gehen.
Gruß,
Geist
-
Hi Skyla,
das Dumme aber ist ja, dass beides nicht funktioniert hat. Habs ja auch mit this probiert, um genau den MC anzusprechen...
Ich persönlich finde es irgendwie seltsam. Aber ich werd noch dran rumtüfteln. Das muss doch zum laufen zu bringen sein...
Grüße,
Feyiama:: Der Mensch bringt sogar die Wüsten zum Blühen. Die einzige Wüste, die ihm noch Widerstand leistet, befindet sich in seinem Kopf. ::
:: Das Unsympathische an den Computern ist, daß sie nur ja oder nein sagen können, aber nicht vielleicht. ::
:: Die Frauen machen sich nur deshalb so hübsch, weil das Auge des Mannes besser entwickelt ist, als sein Verstand. ::
:: Der Mensch hat das Recht auf seine eigene Meinung, aber er hat keinen Anspruch darauf, das andere sie teilen. ::
-
29.04.03 12:08 #7geht ganz sicher nicht?PHP-Code:
meinMC.onEnterFrame = function() {
var faktor = this._width/_root.breite;
this._width = this._width/faktor;
this._height = this._height/faktor;
this._y = _root.hoehe - this._height;
}
Geist
-
Hi Geist,
ja wirklich...
also...hier mit Script auf dem MC:
http://www.ingenium.de/sound/auf_mc.gif
Hier nochmal das Script auf dem MC:
Und hier mit dem Script auf _root:PHP-Code:onClipEvent (enterFrame) {
faktor = _width/_root.breite;
_width = _width/faktor;
_height = _height/faktor;
_y=_root.hoehe-_height;
}
http://www.ingenium.de/sound/auf_root.gif
Hier nochmal das Script auf _root:
Ich finde den Fehler einfach nicht.PHP-Code:container.onEnterFrame = function() {
faktor = this._width/_root.breite;
this._width = this._width/faktor;
this._height = this._height/faktor;
this._y=_root.hoehe-this._height;
};
Ich meine, da gibt es doch eigentlich keinen Unterschied, oder?
Grüße,
Feyiama:: Der Mensch bringt sogar die Wüsten zum Blühen. Die einzige Wüste, die ihm noch Widerstand leistet, befindet sich in seinem Kopf. ::
:: Das Unsympathische an den Computern ist, daß sie nur ja oder nein sagen können, aber nicht vielleicht. ::
:: Die Frauen machen sich nur deshalb so hübsch, weil das Auge des Mannes besser entwickelt ist, als sein Verstand. ::
:: Der Mensch hat das Recht auf seine eigene Meinung, aber er hat keinen Anspruch darauf, das andere sie teilen. ::
-
29.04.03 17:22 #9
Hm sorry, bei mir bewirken beide Scripte das gleiche:
In deinem Fall erstmal nix, weil nach dem ersten Durchlauf der Funktion im ersten Frame die Variable faktor sich eh auf 1 eingepegelt hat und ab dann keine sichtbare Änderung mehr verursacht - wenn ich das Script aber so verändere, dass mal doch mit Durchlauf von ein paar Frames etwas mit einem beliebigen MC geschieht, so erscheint es mir eben, als ob dein EventHandler und meine implementierte Funktion das gleiche bewirken.
Vielleicht hilft die *.fla ein wenig weiter?
Gruß,
Geist
-
jup da kann ich mich Geist nur anschließen... ich hatte das auch noch mal getestet, da ich mir nich vorstellen kann, dass sowas nich geht

komme auf das geliche ErgebnisNichtwissen ist liegt in dem Glauben, dass wir die ganze Wahrheit sehen
-
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:: Der Mensch bringt sogar die Wüsten zum Blühen. Die einzige Wüste, die ihm noch Widerstand leistet, befindet sich in seinem Kopf. ::
:: Das Unsympathische an den Computern ist, daß sie nur ja oder nein sagen können, aber nicht vielleicht. ::
:: Die Frauen machen sich nur deshalb so hübsch, weil das Auge des Mannes besser entwickelt ist, als sein Verstand. ::
:: Der Mensch hat das Recht auf seine eigene Meinung, aber er hat keinen Anspruch darauf, das andere sie teilen. ::
-
30.04.03 18:54 #12
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:
hth,PHP-Code: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");
Geist
-
30.04.03 20:06 #13
- Registriert seit
- May 2002
- Ort
- _root
- Beiträge
- 1.342
Hi fey
will jetzt hier nicht nachdoppeln oder belehrend
wirken. Aber man fragt sich halt schon mal wieso
man sich die zeit nimmt, was lang und breit zu
erklären, wenn's dann nicht mal gelesen wird...
hier zur erinnerung
-
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:
Wenn jetzt aber doch die Eventhandler beim Laden von externen Inhalt in einen MC gelöscht werden, wozu gibt es dann bitte diesen Eventhandler****?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.
Grüße,
Feyiama:: Der Mensch bringt sogar die Wüsten zum Blühen. Die einzige Wüste, die ihm noch Widerstand leistet, befindet sich in seinem Kopf. ::
:: Das Unsympathische an den Computern ist, daß sie nur ja oder nein sagen können, aber nicht vielleicht. ::
:: Die Frauen machen sich nur deshalb so hübsch, weil das Auge des Mannes besser entwickelt ist, als sein Verstand. ::
:: Der Mensch hat das Recht auf seine eigene Meinung, aber er hat keinen Anspruch darauf, das andere sie teilen. ::
-
01.05.03 12:52 #15
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:
Wir haben mit nichts anderem zu tun, als einer Eigenschaft des Objektes, welcher eine taugliche Funktion zugeordnet wird, implementiert eben.PHP-Code:objekt.onEreignis = function() { ... }
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





Zitieren
Login





