Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-10-2005, 14:17   #1 (permalink)
Neuer User
 
Benutzerbild von trossen
 
Registriert seit: Jan 2005
Beiträge: 169
wer hat lust sich ein paar € zu verdienen

wer hat lust sich ein paar € zu verdienen
und mir mein ca 40 zeiliges script (ohne kommentaare) so umzubauen und zu erklären
das die performance manierlich ist

hier schon mals das script
PHP-Code:
//speichert den zuletzt aufderufenen index
var lastIndex;
//Variable um den MC anLaden zu steuern
var ladevorgang;
//Array um die  referenz zu den strichMC instanzen auf  der bühne dynamisch zu übergeben 
strichName = ["strich1Q1","strich2Q1","strich1Q2","strich2Q2","strich1Q3","strich2Q3","strich1Q4","strich2Q4"]
//Array um die  referenz zu den quadratMC instanzen auf  der bühne dynamisch zu übergeben
quadratName = ["quadrat1","quadrat2","quadrat3","quadrat4"]
// Array um für jedes geladene Bild (jeder button lädt 4 bilder) eine leeren MC mit namen zu erstellen
// für jeden Button benötige ich noch einen leeren MC watcher um in ihm einen onEnterFrame zu installieren
// der die größe des quadrat´s mit der des containers vergleicht
//ich brauch so viele watcher wie ich butten habe

containerName = ["watcher0""container1""container2""container3""container4"
                 
"watcher1""container11""container12""container13""container14",
                 
"watcher3""container21""container22""container23""container24",
                 
"watcher4""container31""container32""container33""container34"];
//MovieClip.prototype der die leeren MC´s erzeugt( wenn sie nicht schon vorhanden sind) und dann swf dateien in die container lädt
//C1zielX erklärung zielkoordinaten der quadrate die getweent werden
//C1 steht für  clip1 zielX die x koordinate des ziel x
//die X/Y koordinaten müssen für alle zu tweenenden quadrate vorhanden sein
//die zielkoordinaten werden unten nur einem weiteren MovieClip.prototypen ( tween) übergeben
MovieClip.prototype.laden = function(indexclip1clip2clip3clip4,C1zielXC1zielY,C2zielX,C2zielY,C3zielX,C3zielY,C4zielX,C4zielY) {
    
//die container die beim vorrigen ausführen des prototypen sichtbar wurden auf alpha = 0 setzen
    
_root[containerName[lastIndex+1]]._alpha 0;
    
_root[containerName[lastIndex+2]]._alpha 0;
    
_root[containerName[lastIndex+3]]._alpha 0;
    
_root[containerName[lastIndex+4]]._alpha 0;
    
//speichert den zuletzt aufgerufenen index damit beim erneuten ausführen des prototypen 
    //die container die zuvor sichtbar wurden wieder unsichtbar zu werden
    
lastIndex index;
    
//solange der container _root[containerName[index]] noch nicht besteht also undefiniert ist
    //erstelle neuen container mit dem namen aus dem Array containerName 
    
if (_root[containerName[index]] == undefined) {
        
//trace("ich bin noch nicht Da ");
        //Die MC´s müssen alle auf verschiedenen Layern liegen 
        // da immer nur 1 MC auf einen Layer platz hat
        
_root.createEmptyMovieClip([containerName[index]], index+10);
        
_root.createEmptyMovieClip([containerName[index+1]], index+1);
        
_root.createEmptyMovieClip([containerName[index+2]], index+2);
        
_root.createEmptyMovieClip([containerName[index+3]], index+3);
        
_root.createEmptyMovieClip([containerName[index+4]], index+4);
        
//lader die swf dateien (deren name mit clip1/2/3/4 übergeben werden)
        //in die container
        
_root[containerName[index+1]].loadMovie(clip1);
        
_root[containerName[index+2]].loadMovie(clip2);
        
_root[containerName[index+3]].loadMovie(clip3);
        
_root[containerName[index+4]].loadMovie(clip4);
    }
    
//trace("---------------------ich bin  Da ");
    // setzt die gerade erzeugten container auf alpha = 0
    //damit sie beim darauffolgenden formtween noch nicht zu sehen sind
    
_root[containerName[index+1]]._alpha 0;
    
_root[containerName[index+2]]._alpha 0;
    
_root[containerName[index+3]]._alpha 0;
    
_root[containerName[index+4]]._alpha 0;
    
//mit _root[containerName[index]].onEnterFrame wird ein event im jeweiligen MC watcher impliziert
    //diesen MC watcher brauch ich um überwachen zu können wie viele Bytes geladen werden müssen ( BytsTotal)
    //wie viele Bytes bereits geladen wurden
    // und um anschließend wenn alles geladen ist den nächsten prototypen (tween) zu starten
    
_root[containerName[index]].onEnterFrame = function() {
        
//variable die die anzahl der Bytes der dateinen die geladen werden speichert
this.BytesTotal _root[containerName[index+4]].getBytesTotal(Clip4)+_root[containerName[index+1]].getBytesTotal(Clip1)+
                 
_root[containerName[index+2]].getBytesTotal(Clip2)+_root[containerName[index+3]].getBytesTotal(Clip3);
        
//variable die die    bis zu diesem zeitpunkt geladene Beyte speichert     
this.BytesLoadet _root[containerName[index+1]].getBytesLoaded(Clip1)+_root[containerName[index+2]].getBytesLoaded(Clip2)+
                
_root[containerName[index+3]].getBytesLoaded(Clip3)+_root[containerName[index+4]].getBytesLoaded(Clip4);
        
// trace("Total "+ this.BytesTotal)
        //trace("geladen"+ this.BytesLoadet)
        
        //sollang noch nicht alle Bytes geladen sind setze die Variable ladevogang auf den string "amLaden"
        //damit der MC amLaden abgespielt wird
        
if (this.BytesLoadet<this.BytesTotal) {
            
ladevorgang "amLaden";
        }
        
//wenn alle bytes geladen sind setze die Variable ladevorgang auf den string "ende"
        // um den Mc amLaden zu stopen
        //anschließend starte den MovieClip.prototypen tween
        
if (this.BytesLoadet == this.BytesTotal) {
            
ladevorgang "ende";
            
//starte den tween und übergebe die zielkoordinaten dem tween
            
tween(index+1,0,C1zielX,C1zielY);
            
tween(index+2,1,C2zielX,C2zielY);
            
tween(index+3,2,C3zielX,C3zielY);
            
tween(index+4,3,C4zielX,C4zielY);

                
delete this.onEnterFrame;
            
        }
    };
};
// MovieClip.Prototype tween hat die aufgabe die Quadrate zu tweenen und sie auf die größe der container 
//(die die swf dateien enthalten) zu scalieren
// und anschließend die container sichtbar zu machen
//index ist der index der Arrays [containerName]
//Qindex ist der index des Arrays [QuadratName]
// zielX zielY sind die zielkoordinaten für den tween
MovieClip.prototype.tween = function(index,Qindex,zielX,zielY){
    
_root[containerName[index]].onEnterFrame = function(){
        
//trace("toll 1"+ [quadratName[Qindex]]);
        
        // vergleich ob der aktuelle container eine ungleiche breite oder höhe mit dem quadrat besitzt 
        // (_root[quadratName[Qindex]] also quadrat mit dem name aus dem Array quadratName)
        
if (Math.round(this._width) != Math.round(_root[quadratName[Qindex]]._width) || 
            
Math.round(this._height) != Math.round(_root[quadratName[Qindex]]._height)) {
            
//Formtween anpassen des quadrates auf die größe der containers
            
_root[quadratName[Qindex]]._width += (this._width-_root[quadratName[Qindex]]._width)/5;
            
_root[quadratName[Qindex]]._height += (this._height-_root[quadratName[Qindex]]._height)/5;
    }else{
        
// setze den container auf die x/y koordinaten den angesprochenen quadrat´s
        
this._x _root[quadratName[Qindex]]._x - (_root[quadratName[Qindex]]._width 2);
        
this._y _root[quadratName[Qindex]]._y - (_root[quadratName[Qindex]]._height 2);
        
// den container sichtbar werden lassen
        
this._alpha += 5;
        if(
this._alpha 100){
            
// wenn der container sichtbar ist  also auch auf die größe scallier getweent 
            //lösche diesen onEnterFrame und den onEnterFrame der fürs tweenen verantwortlich war
        
delete _root[quadratName[Qindex]].onEnterFrame
        delete this
.onEnterFrame;
            }
        }
    }
    
//setze den wert der argumentes zielX auf this.zielX um den wert nur für diesen aufruf der prototypen verfügbar zu machen
    
this.zielX zielX;
    
this.zielY zielY;
    
// tweenen des quadrats
    
_root[quadratName[Qindex]].onEnterFrame = function (){
        
this._x += (zielX this._x)/5;
        
this._y += (zielY this._y)/5;
        
// positionieren des oberbe strich´s
        //die quadrate haben den Index 0,1,2,3  die sticher aber 0,1,2,3,4,5,6,7
        // also errechne ich mir den index der striche aus dem index der quadrate (Qindex*2)
        
_root[strichName[Qindex*2]]._x this._x;
        
_root[strichName[Qindex*2]]._y this._y + (this._height/2);
        
// positionieren des untern strich´s
        
_root[strichName[Qindex*2+1]]._x this._x;
        
_root[strichName[Qindex*2+1]]._y this._y - (this._height/2);
        
        
    }
}
/////////////----------- Buttons----------------/////
BTN1.onRelease = function() {
    
laden(0"black1.swf""black2.swf""black3.swf""kolumbariumFilm.swf",0,10,33,200,66,200,99,100);
    
};
BTN2.onRelease = function() {
    
laden(5"black8.swf""black6.swf""black7.swf""black8.swf",100,10,133,200,166,350,199,200);
};
BTN3.onRelease = function() {
    
laden(10"black3.swf""black1.swf""kolumbariumFilm.swf","black8.swf" ,200,10,233,200,266,400,299,100);
};
BTN4.onRelease = function() {
    
laden(15"kolumbariumFilm.swf""black2.swf""black3.swf""kolumbariumFilm.swf",300,10,333,200,366,300,399,100);
}; 
trossen ist offline   Mit Zitat antworten
Alt 06-10-2005, 17:02   #2 (permalink)
Achim Math.PI
 
Benutzerbild von bloba
 
Registriert seit: Jul 2001
Ort: cool Colonia
Beiträge: 11.642
a. ich denke das der code ausreichend auskommetiert ist und sehe daher kein bedarf irgendwas zu erklären
b. ich habs nicht getestet aber denke dass es performance mässig ok ist
c. ich denke dass das was fürs jobboard wäre
__________________
gruß bloba

2 x onkel² b_d
bloba ist offline   Mit Zitat antworten
Alt 06-10-2005, 17:09   #3 (permalink)
Neuer User
 
Benutzerbild von trossen
 
Registriert seit: Jan 2005
Beiträge: 169
zu B hmm warum ruckelt der film dann wie nur sonst was??
zu c du meinst mit jobboard das ganze unten im forum unter jobanjebote reinzustellen . ich dachte mir das da nur richtige stellen stehn und keine kurze nachhilfe!!
aber danke
trossen 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 13:27 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele