• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flash > Stuff

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22-02-2009, 16:10   #1 (permalink)
CodeGecko
 
Benutzerbild von hellslawyer
 
Registriert seit: Aug 2007
Ort: Hagen
Beiträge: 1.240
[Stuff] Kleine Preloader-Klasse für die Faulen (AS2)

Mahlzeit,

da ich auch zu den Leuten gehöre, die faul sind und sich das ewige Getüddel mit den Preloadern gerne sparen würden, habe ich für den Krempel mal eine kleine Klasse gebaut, mit der man den Krams mit drei Zeilen Code erledigen kann. Das ganze in AS2, da ich derzeit leider noch nicht so oft mit AS3 spielen darf ...

Klasse und Beispiel findet Ihr im Anhang. Hier mal ein Beispielaufruf aus einer FLA:
ActionScript:
  1. //---
  2. /*
  3. * ##################################################
  4. * @author  Reinhart Redel - sickworks.com - (c)2009
  5. * @version Preloader V1
  6. * ##################################################
  7. */
  8. //---
  9.  
  10. import com.sickworks.utils.Preloader;
  11.  
  12. var pnt:Object = {x:800, y:0};
  13. loaderstuff.globalToLocal(pnt)
  14. loaderstuff._visible = false;
  15.  
  16. var pl1:Preloader = new Preloader("gecko_big.png", pr1, loadinit);
  17. pl1.addTransforms([loaderstuff.loader_circle, {keepProps: false, _xscale: 25, _yscale: 25, _rotation: 1440}], loaderstuff.prtext1, " %");
  18. pl1.addTransforms([loaderstuff.loader_ymover, {_x: pnt.x - loaderstuff.loader_ymover._width / 2, _y: pnt.y + loaderstuff.loader_ymover._height / 2, keepProps: true}]);
  19. pl1.addTransforms([loaderstuff.loader_width, {_xscale: 100}]);
  20. pl1.showBytesLoaded(loaderstuff.prtext2, " bytes loaded");
  21. pl1.showBytesTotal(loaderstuff.prtext3, " KB total ", true);
  22. pl1.showBytesLoadedTotal(loaderstuff.prtext4, " KB of ", " KB loaded", true);
  23. pl1.showPercent(loaderstuff.prtext5, " % loaded");
  24.  
  25.  
  26. function loadinit(mc:MovieClip):Void
  27. {
  28.     mc._xscale = mc._yscale = 50;
  29.     loaderstuff._visible = false;
  30. }
  31. startloading.onRelease = function():Void
  32. {
  33.     loaderstuff._visible = true;
  34.     pl1.start();
  35. }

Die Parameter:
Konstruktor:
Code:
public function Preloader(clipToLoad:String, target:MovieClip, callback:Function)
Zitat:
- clipToLoad: die URL des zu ladenden swfs oder Bild
- target: der MC in den der Krempel geladen werden soll
- callback: die Funktion, die aufgerufen werden soll, wenn alles komplett geladen ist
Transform-Parameter (es soll sich ja auch was bewegen ):
Code:
public function addTransforms(clipsToTransform:Array, pctTextField:TextField, textToAdd:String):Void
Zitat:
- clipsToTransform: ein Array, das die MCs enthält, die verändert werden sollen und natürlich deren Parameter. Aufbau ist wie folgt:
[MC_der_verändert_wird, {Object mit den Properties (_x, _y, ...)}, MC, Object, MC, Object, ...] (immer schön abwechselnd)
Wichtig:
Für das TransformObject gibt es eine spezielle Property namens "keepProps". Wenn man diese auf true setzt, werden die ursprünglichen Eigenschaften des MCs beibehalten und als Ausgangspunkt für die Transformation benutzt. Wird die Eigenschaft nicht oder auf false gesetzt, werden alle Properties, die im TransformObject stehen zu Beginn des Ladevorgangs auf 0 gesetzt!

- pctTextField (optional): das Textfeld, in dem die geladenen Prozent angezeigt werden sollen
- textToAdd (optional, wenn pctTextField gesetzt ist): Text der hinter der Prozentzahl angezeigt werden soll
Zusätzliche Methoden:
Bereits geladene Bytes anzeigen:

Code:
public function showBytesLoaded(targetTextField:TextField, textToAdd:String, useKB:Boolean):Void
Zitat:
- targetTextField: das Textfeld in dem die geladenen Bytes angezeigt werden sollen
- textToAdd: Text, der hinter den geladenen Bytes angezeigt werden soll
- useKB: auf true gestellt, werden nur volle KiloByte angezeigt

Gesamtgröße des zu ladenden MCs anzeigen:

Code:
public function showBytesTotal(targetTextField:TextField, textToAdd:String, useKB:Boolean):Void
Zitat:
- Parameter genau wie bei showBytesLoaded

Geladene Bytes und Gesamtgröße anzeigen:

Code:
public function showBytesLoadedTotal(targetTextField:TextField, textToAddAfterLoaded:String, textToAddAfterTotal:String, useKB:Boolean):Void
Zitat:
- targetTextField: das Textfeld in dem die geladenen Bytes angezeigt werden sollen
- textToAddAfterLoaded: Text der hinter den geladenen Bytes angezeigt werden soll
- textToAddAfterTotal: Text der hinter der Gesamtgröße angezeigt werden soll
- useKB: auf true gestellt, werden nur volle KiloByte angezeigt
Geladene Prozent anzeigen:
Code:
public function showPercent(targetTextField:TextField, textToAdd:String):Void
Zitat:
(Sofern man nicht bereits bei den Transformparametern ein Textfeld angegeben hat, oder die Prozente in ein weiteres Textfeld schieben möchte)
- targetTextField: das Textfeld in dem die Prozente angezeigt werden sollen
- textToAdd: Text, der hinter den Prozenten angezeigt werden soll
Und last but not least natürlich die Funktion zum starten des Ladevorgangs:
Code:
public function start():Void
Beispiel:
Code:
meine_preloaderinstanz.start();
Eine Demo und die ausführliche Dokumentation findet Ihr hier:
http://www.sickworks.com/tools/preloaderclass.html

Bugs und Sonderwünsche bitte einfach hier melden
Angehängte Dateien
Dateityp: zip Preloader-Class-noImage.zip (16,3 KB, 97x aufgerufen)
__________________
Grütze Reinhart

XING || Simple Flash-Filter-Generator || DateChooser (AS3)
MovieClipLoader-Example (AS2) || PreloaderClass (AS2) || Framechecker-Component (AS2)

Bitte keine Flashfragen per PN oder ICQ. Dafür ist das Forum da.

Geändert von hellslawyer (22-02-2009 um 16:14 Uhr)
hellslawyer ist offline   Mit Zitat antworten
Alt 22-02-2009, 22:10   #2 (permalink)
CodeGecko
 
Benutzerbild von hellslawyer
 
Registriert seit: Aug 2007
Ort: Hagen
Beiträge: 1.240
Huch, die einfachste Möglichkeit hatte ich ja gar nicht genannt.
Preloader mit 5 Zeilen Code.
Features: Prozentanzeige + Ladebalken (beliebig erweiterbar)

ActionScript:
  1. //---
  2. /*
  3. * ##################################################
  4. * @author  Reinhart Redel - sickworks.com - (c)2009
  5. * @version Preloader V1
  6. * ##################################################
  7. */
  8. //---
  9.  
  10. import com.sickworks.utils.Preloader;
  11.  
  12. var pl1:Preloader = new Preloader("gecko_big.png", pr1, loadinit);
  13. pl1.addTransforms([loaderbar_mc, {keepProps: false, _xscale: 100}], loadertextfield, " % loaded");
  14. pl1.start();
  15.  
  16. function loadinit(mc:MovieClip):Void {trace("I damn loaded your stuff!")};
__________________
Grütze Reinhart

XING || Simple Flash-Filter-Generator || DateChooser (AS3)
MovieClipLoader-Example (AS2) || PreloaderClass (AS2) || Framechecker-Component (AS2)

Bitte keine Flashfragen per PN oder ICQ. Dafür ist das Forum da.
hellslawyer 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 05:58 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele