Ergebnis 1 bis 1 von 1

Thema: MovieClip.prototype.wabber und Wabber-Klasse

  1. #1
    TP-Insider Avatar von Madokan
    Registriert seit
    Oct 2002
    Ort
    Berlin/Germany
    Beiträge
    855

    Post MovieClip.prototype.wabber und Wabber-Klasse

    Vom Prototype zur Klasse und den diversen Lösungsansätzen.

    ActionScript 1.0

    Hier haben wir den Wabber-Prototype, welcher direkt im Flash Film untergebracht wird. Es wird ein MovieClip-Symbol mit dem Verknüpfungsbezeichner Clip und zwei MovieClip-Instanzen mc und mc2 benötigt.

    PHP-Code:
    MovieClip.prototype.wabber = function(multiplikatorxskalyskalratio) {
        if (
    this.sX == undefinedthis.sX 0;
        if (
    this.sY == undefinedthis.sY 0;    
        
    this.onEnterFrame = function() {
            
    this.sX Number(this.sX*multiplikator)+Number((xskal-this._xscale)*ratio);
            
    this.sY Number(this.sY*multiplikator)+Number((yskal-this._yscale)*ratio);
            
    this._xscale += Math.round(this.sX);
            
    this._yscale += Math.round(this.sY);
        };
    };
    MovieClip.prototype.wabberKill = function(multiplikatorxskalyskalratio) {
        if (
    this.sX == undefinedthis.sX 0;
        if (
    this.sY == undefinedthis.sY 0;
        
    this.onEnterFrame = function() {
            if (
    this._xscale != xskal || this._yscale != yskal) {
                
    this.sX Number(this.sX*multiplikator)+Number((xskal-this._xscale)*ratio);
                
    this.sY Number(this.sY*multiplikator)+Number((yskal-this._yscale)*ratio);
                
    this._xscale += Math.round(this.sX);
                
    this._yscale += Math.round(this.sY);
            } else {
                
    delete this.onEnterFrame;
            }
        };
    };

    // Clip Wabber
    mc.wabber(.9150150.3);
    mc.onRollOver = function() {
        
    this.wabber(.9150150.3);
    };
    mc.onRollOut = function() {
        
    this.wabber(.9100100.3);
    };

    // Clip WabberKill
    mc_2.wabberKill(.9150150.3);
    mc_2.onRollOver = function() {
        
    this.wabberKill(.9150150.3);
    };
    mc_2.onRollOut = function() {
        
    this.wabberKill(.9100100.3);
    }; 

    ----


    ActionScript 2.0

    Hier haben wir drei ActionScript 2.0 Lösungsansätze (Simple, Register, Comp).

    Simple-Version Wabber.as - Skript

    Diese Version gehört zur Standard-Lösung. Die Klasse Wabber wird hierbei von der MovieClip-Klasse abgeleitet.

    PHP-Code:
    class Wabber extends MovieClip {
        
        
    // Prop
        
    private var sX:Number;
        private var 
    sY:Number;
        
        
    // Constructor
        
    function Wabber() {}
        
        
    // Effekt wabbern
        
    public function wabbern(multiplikator:Numberxskal:Numberyskal:Numberratio:Number):Void {
            if (
    sX == undefinedsX 0;        
            if (
    sY == undefinedsY 0;
            
    onEnterFrame = function() {
                
    sX Number(sX*multiplikator)+Number((xskal-_xscale)*ratio);
                
    sY Number(sY*multiplikator)+Number((yskal-_yscale)*ratio);
                
    _xscale += Math.round(sX);
                
    _yscale += Math.round(sY);
            };
        }
        
        
    // Effekt wabbern_kill
        
    public function wabbern_kill(multiplikator:Numberxskal:Numberyskal:Numberratio:Number):Void {
            if (
    sX == undefinedsX 0;
            if (
    sY == undefinedsY 0;
            
    onEnterFrame = function() {
                if (
    _xscale != xskal || _yscale != yskal) {
                    
    sX Number(sX*multiplikator)+Number((xskal-_xscale)*ratio);
                    
    sY Number(sY*multiplikator)+Number((yskal-_yscale)*ratio);
                    
    _xscale += Math.round(sX);
                    
    _yscale += Math.round(sY);            
                } else {            
                    
    delete onEnterFrame;
                }
            };
        }


    Flash Film Simple-Version - Skript

    Flash Film (es wird lediglich ein Movieclip-Symbol mit dem Verknüpfungsbezeichner Clip vorausgesetzt) - die Verknüpfung zur Klasse muss ebenfalls zugewiesen werden.

    PHP-Code:
    // Clip wabber
    mc.wabbern(.9150150.3);

    mc.onRollOver = function()
    {
        
    this.wabbern(.9150150.3);
    }
    mc.onRollOut = function()
    {   
        
    this.wabbern(.9100100.3);
    }


    // Clip wabbern_kill
    mc_2.wabbern_kill(.9150150.3);

    mc_2.onRollOver = function()
    {
        
    this.wabbern_kill(.9150150.3);
    }
    mc_2.onRollOut = function()
    {   
        
    this.wabbern_kill(.9100100.3);



    Dyn-Version Wabber.as - Skript

    Wie man sieht wird die Klasse Wabber von der Klasse MovieClip abgeleitet!

    PHP-Code:
    class Wabber extends MovieClip {
        
        
    // Prop
        
    private var sX:Number;
        private var 
    sY:Number;
        
        
    // Constructor    
        
    public function Wabber() {}
        
        
    // Effekt wabbern
        
    public function wabbern(multiplikator:Numberxskal:Numberyskal:Numberratio:Number):Void {
            if (
    sX == undefinedsX 0;        
            if (
    sY == undefinedsY 0;
            
    onEnterFrame = function() {
                
    sX Number(sX*multiplikator)+Number((xskal-_xscale)*ratio);
                
    sY Number(sY*multiplikator)+Number((yskal-_yscale)*ratio);
                
    _xscale += Math.round(sX);
                
    _yscale += Math.round(sY);
            };
        }
        
        
    // Effekt wabbern_kill
        
    public function wabbern_kill(multiplikator:Numberxskal:Numberyskal:Numberratio:Number):Void {
            if (
    sX == undefinedsX 0;
            if (
    sY == undefinedsY 0;        
            
    onEnterFrame = function() {
                if (
    _xscale != xskal || _yscale != yskal) {
                    
    sX Number(sX*multiplikator)+Number((xskal-_xscale)*ratio);
                    
    sY Number(sY*multiplikator)+Number((yskal-_yscale)*ratio);
                    
    _xscale += Math.round(sX);
                    
    _yscale += Math.round(sY);            
                } else {            
                    
    delete onEnterFrame;
                }
            };
        }

    Flash Film Dyn-Version - Skript

    Flash Film (es wird lediglich ein Movieclip-Symbol mit dem Verknüpfungsbezeichner Clip vorausgesetzt) - die Verknüpfung zur Klasse übernimmt Object.registerClass()

    PHP-Code:
    // Symbol Clip und Wabber-Klasse
    Object.registerClass("Clip"Wabber);

    // MC
    this.attachMovie ("Clip""mc"1, {_x:160_y:200});

    mc.wabbern(.9150150.3);

    mc.onRollOver = function()
    {
        
    this.wabbern(.9150150.3);
    }
    mc.onRollOut = function()
    {   
        
    this.wabbern(.9100100.3);
    }

    // MC2
    this.attachMovie ("Clip""mc2"2, {_x:410_y:200});

    mc2.wabbern_kill(.9150150.3);

    mc2.onRollOver = function()
    {
        
    this.wabbern_kill(.9150150.3);
    }
    mc2.onRollOut = function()
    {   
        
    this.wabbern_kill(.9100100.3);



    Comp-Version Wabber.as - Skript

    Eine Ableitung von der Klasse MovieClip ist in diesem Fall nicht notwendig.

    PHP-Code:
    class Wabber {
        
        
    // Prop
        
    private var ziel:MovieClip;
        
        
    // Constructor    
        
    public function Wabber(ziel:MovieClip
        {
            
    this.ziel ziel;        
        }
        
        
    // Effekt wabbern
        
    public function wabbern(multiplikator:Numberxskal:Numberyskal:Numberratio:Number):Void {        
            if (
    ziel.sX == undefinedziel.sX 0;        
            if (
    ziel.sY == undefinedziel.sY 0;
            
    ziel.onEnterFrame = function() {            
                
    this.sX Number(this.sX*multiplikator)+Number((xskal-this._xscale)*ratio);
                
    this.sY Number(this.sY*multiplikator)+Number((yskal-this._yscale)*ratio);            
                
    this._xscale += Math.round(this.sX);
                
    this._yscale += Math.round(this.sY);
            };
        }
        
        
    // Effekt wabbern_kill
        
    public function wabbern_kill(multiplikator:Numberxskal:Numberyskal:Numberratio:Number):Void {
            if (
    ziel.sX == undefinedziel.sX 0;        
            if (
    ziel.sY == undefinedziel.sY 0;
            
    ziel.onEnterFrame = function() {
                if (
    this._xscale != xskal || this._yscale != yskal) {
                    
    this.sX Number(this.sX*multiplikator)+Number((xskal-this._xscale)*ratio);
                    
    this.sY Number(this.sY*multiplikator)+Number((yskal-this._yscale)*ratio);            
                    
    this._xscale += Math.round(this.sX);
                    
    this._yscale += Math.round(this.sY);            
                } else {            
                    
    delete this.onEnterFrame;
                }
            };
        }    

    Flash Film Comp-Version - Skript

    Flash Film (es wird lediglich ein Movieclip-Symbol mit dem Verknüpfungsbezeichner Clip vorausgesetzt) - die Verknüpfung zum MovieClip übernimmt die Klasse selbst.

    PHP-Code:
    // Clip Objekt
    var clip:Wabber = new Wabber(this.mc);
    clip.wabbern(.9150150.3);

    mc.onRollOver = function()
    {
        
    clip.wabbern(.9150150.3);
    }
    mc.onRollOut = function()
    {   
        
    clip.wabbern(.9100100.3);
    }

    // Clip2 Objekt
    var clip2:Wabber = new Wabber(this.mc2);
    clip2.wabbern_kill(.9150150.3);

    mc2.onRollOver = function()
    {
        
    clip2.wabbern_kill(.9150150.3);
    }
    mc2.onRollOut = function()
    {   
        
    clip2.wabbern_kill(.9100100.3);

    Hinweis
    Im Anhang wabber_klassen_2005.zip sind sämtliche vier Versionen enthalten pickt euch euren Favoriten heraus (Prototype, Simple, Register, Comp). So lernt man auch gleich vier unterschiedliche Lösungsansätze kennen.
    Be inspired!

    Liebe Grüsse
    Matze K.
    Angehängte Dateien Angehängte Dateien

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Webseiten und Datenschutz - ein paar grundsätzliche Infos
    Von Jokai olvaso im Forum Business allgemein
    Antworten: 35
    Letzter Beitrag: 13.01.2010, 12:00
  2. Was ich denn so den ganzen Tag lang mache
    Von LauneDerNatur im Forum Einfach so ...
    Antworten: 4
    Letzter Beitrag: 03.02.2005, 09:45
  3. Selbstständigkeit unter 18 Bitte erst lesen !
    Von Epic im Forum Gründung & Selbstständigkeit
    Antworten: 0
    Letzter Beitrag: 08.08.2004, 20:49

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51