Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-01-2004, 09:36   #1 (permalink)
Kreativer Kopf
 
Registriert seit: Sep 2001
Ort: 36088 Hünfeld (Hessen)
Beiträge: 386
Große Bilder ineinander faden

Mein folgendes Script lädt ein (neues) Hintergrundbild und fadet es über dem alten ein, sobald es geladen ist.

ActionScript:
  1. tauscheHintergrund = function (neuesBild) {
  2.     // auf aktuellen Hintergrund prüfen:
  3.     if (neuesBild != aktuellesBild) {
  4.         _global.aktuellesBild = neuesBild;
  5.         // korrekten Pfad einfügen
  6.         neuesBild = "images/" + neuesBild;
  7.    
  8.         // hintergrundcontainer leeren und alpha 0
  9.         _root[bild[0]].unloadMovie ();
  10.         _root[bild[0]]._alpha = 0;
  11.    
  12.         // tiefen tauschen
  13.         _root.bild.reverse ();
  14.         _root[bild[0]].swapDepths (_root[bild[1]]);
  15.        
  16.         // bild in vorderen container laden und faden (kaiserschleife)
  17.         _root[bild[1]].loadMovie (neuesBild);
  18.         _root.onEnterFrame = function () {
  19.             if (_root[bild[1]].getBytesTotal () > 0) {
  20.                 // Zwischenspeichern der Bildgröße
  21.                 _root.bytesGesamt = _root[bild[1]].getBytesTotal ();
  22.                 //trace ("Gesamt: " + _root.bytesGesamt);
  23.                 delete (this.onEnterFrame);
  24.            
  25.                 // Kaiserschleife: Ladestatus
  26.                 _root[bild[1]].onEnterFrame = function () {
  27.                     // warten, bis Bild geladen ist
  28.                     if (this.getBytesLoaded () >= _root.bytesGesamt) {
  29.                         //trace ("Bild ist geladen");
  30.                         delete (this.onEnterFrame);
  31.                        
  32.                         // Kaiserschleife: faden
  33.                         _root[bild[1]].onEnterFrame = function () {
  34.                             trace ("aktueller Alpha: " + this._alpha);
  35.                             if (this._alpha < 80) {
  36.                                 this._alpha += 20;
  37.                             } else if (this._alpha >= 80) {
  38.                                 this._alpha = 99;
  39.                                 delete (this.onEnterFrame);
  40.                             }
  41.                         };
  42.                     }
  43.                 };
  44.             }
  45.         };
  46.     }
  47. };

Leider stottert das Bild auf jedem PC unter 1GHz. Die FTS liegt derzeit (noch) bei 31, ich überlege, die Frames auf 12 zu bremsen, was aber die ganze Site beträfe...

Hat jmd nen spontanen Performance-Tip für mich? Wäre furchbar lieb!
__________________
#patrick#

www.com-pose.de
PatrickKByte ist offline   Mit Zitat antworten
Alt 03-01-2004, 14:46   #2 (permalink)
screenpunk.com
 
Benutzerbild von elviz
 
Registriert seit: Mar 2002
Ort: Ulm
Beiträge: 64
hmmm... was is denn ne kaiserschleife?? ;-)

ich hoff ich versteh dein problem richtig! ich hab sowas mal ziemlich billig gelöst! lad doch einfach die ganzen bilder am anfang, macht die sache schon mal einfacher! und dann kanst das faden natürlich über AS machen, geht aber auch mit tweenings ganz schön! kannst ja mal schauen

http://www.muelleima.de

gruß aus ulm!
elviz ist offline   Mit Zitat antworten
Alt 04-01-2004, 15:08   #3 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Flash hat allgemein leichte Probleme, wenn es um grosse transparente Flächen geht. Als Test kannst du ja einfach mal ein Tweening machen, um zu sehen, was überhaupt möglich ist. Die Scriptlösung wird sich performancemaessig davon nur unwesentlich unterscheiden.

mfg .r
bokel ist offline   Mit Zitat antworten
Alt 05-01-2004, 09:51   #4 (permalink)
Kreativer Kopf
 
Registriert seit: Sep 2001
Ort: 36088 Hünfeld (Hessen)
Beiträge: 386
Zitat:
hmmm... was is denn ne kaiserschleife?? ;-)
Als Kaiserschleife bezeichne ich eine onEnterFrame-Schleife, die sich nach Ablauf ihrer FUnktion selbst eliminiert. Erstmals verwendet in http://www.kaiser-gleisbau.de.

Zitat:
ich hoff ich versteh dein problem richtig! ich hab sowas mal ziemlich billig gelöst! lad doch einfach die ganzen bilder am anfang, macht die sache schon mal einfacher! und dann kanst das faden natürlich über AS machen, geht aber auch mit tweenings ganz schön! kannst ja mal schauen...
Ganz vergleichbar ist es leider nicht: meine HG-Bilder sind zwischen 60-100k groß, und die Bühne hat die Dimension 940x560...

Ich steh echt vor nem Problem
__________________
#patrick#

www.com-pose.de
PatrickKByte 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 17:23 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele