tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
15
ZUGRIFFE
668
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Fey
    Fey Fey ist offline Mitglied Platin
    Registriert seit
    Jul 2001
    Ort
    Kassel
    Beiträge
    555
    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:

    PHP-Code:
    onClipEvent (enterFrame) {
        
    faktor _width/_root.breite;
        
    _width _width/faktor;
        
    _height _height/faktor;
        
    _y=_root.hoehe-_height;

    Jetzt in FlashMX kann man das ja direkt in die Hauptzeitleiste packen mit folgendem Script:

    PHP-Code:
    meinMC.onEnterFrame = function() {
        
    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.

    Liebe Grüße und ein dickes Danke,
    Feyiama
    Geä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. ::

  2. #2
    Registriert seit
    Sep 2001
    Ort
    Berlin
    Beiträge
    316
    Versuchs mal so :
    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;
    }; 
    Ich weiß nich ob das jetzt ein Übtertragungefehler war, aber du mußt bei on... = function()
    {
    }; dieses Simikolon setzen

    man sollte sich auch angewöhnen this vor die eigenschaften zu setzten
    also, bei mit klappts
     
    Nichtwissen ist liegt in dem Glauben, dass wir die ganze Wahrheit sehen

  3. #3
    Avatar von Fey
    Fey Fey ist offline Mitglied Platin
    Registriert seit
    Jul 2001
    Ort
    Kassel
    Beiträge
    555
    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. ::

  4. #4
    Stephan Zesiger Stephan Zesiger ist offline Mitglied Rubin
    Registriert seit
    May 2002
    Ort
    _root
    Beiträge
    1.342
    Hi fey

    PHP-Code:
    clip.onPress=function(){
       
    x=10;

    ergibt _root.x=10

    und ist folglich nich das gleiche wie

    PHP-Code:
    clip.onPress=function(){
       
    this.x=10;

    weil dies führt zu: _root.clip.x=10;



    g skyla
     

  5. #5
    Avatar von Adam Wille
    Adam Wille Adam Wille ist offline Mitglied Diamant
    Registriert seit
    Feb 2002
    Ort
    Leipzig
    Beiträge
    2.904
    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
     

  6. #6
    Avatar von Fey
    Fey Fey ist offline Mitglied Platin
    Registriert seit
    Jul 2001
    Ort
    Kassel
    Beiträge
    555
    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. ::

  7. #7
    Avatar von Adam Wille
    Adam Wille Adam Wille ist offline Mitglied Diamant
    Registriert seit
    Feb 2002
    Ort
    Leipzig
    Beiträge
    2.904
    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;

    geht ganz sicher nicht?

    Geist
     

  8. #8
    Avatar von Fey
    Fey Fey ist offline Mitglied Platin
    Registriert seit
    Jul 2001
    Ort
    Kassel
    Beiträge
    555
    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:
    PHP-Code:
    onClipEvent (enterFrame) {
        
    faktor _width/_root.breite;
        
    _width _width/faktor;
        
    _height _height/faktor;
        
    _y=_root.hoehe-_height;

    Und hier mit dem Script auf _root:
    http://www.ingenium.de/sound/auf_root.gif

    Hier nochmal das Script auf _root:
    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 finde den Fehler einfach nicht. 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. ::

  9. #9
    Avatar von Adam Wille
    Adam Wille Adam Wille ist offline Mitglied Diamant
    Registriert seit
    Feb 2002
    Ort
    Leipzig
    Beiträge
    2.904
    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
     

  10. #10
    Registriert seit
    Sep 2001
    Ort
    Berlin
    Beiträge
    316
    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 Ergebnis
     
    Nichtwissen ist liegt in dem Glauben, dass wir die ganze Wahrheit sehen

  11. #11
    Avatar von Fey
    Fey Fey ist offline Mitglied Platin
    Registriert seit
    Jul 2001
    Ort
    Kassel
    Beiträge
    555
    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
    Angehängte Dateien Angehängte Dateien
     
    :: 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. ::

  12. #12
    Avatar von Adam Wille
    Adam Wille Adam Wille ist offline Mitglied Diamant
    Registriert seit
    Feb 2002
    Ort
    Leipzig
    Beiträge
    2.904
    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-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"); 
    hth,
    Geist
     

  13. #13
    Stephan Zesiger Stephan Zesiger ist offline Mitglied Rubin
    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
     

  14. #14
    Avatar von Fey
    Fey Fey ist offline Mitglied Platin
    Registriert seit
    Jul 2001
    Ort
    Kassel
    Beiträge
    555
    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
     
    :: 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. ::

  15. #15
    Avatar von Adam Wille
    Adam Wille Adam Wille ist offline Mitglied Diamant
    Registriert seit
    Feb 2002
    Ort
    Leipzig
    Beiträge
    2.904
    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-Code:
    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