Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 13-03-2010, 09:56   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2007
Beiträge: 143
Error: Error #2099: Das ladende Objekte ist noch nicht weit genug geladen, um diese I

Hallo zusammen,

gerade stosse ich auf ein Problem, was ich mir nicht erklären kann, daher frage ich mal in die Runde.
Szenario läuft wie folgt ab, dass ich per klick auf Buttons ein Bild auf der Bühne platzieren möchte, das bestehende soll dabei ausfaden, das neue Bild einfaden. Eigentlich ne ganz simple Sache.

So nun, benutze ich die Loader-Klasse, um die Bilder zu laden. Werden die Bilder das erste mal geladen, läuft das ganze auch sauber ab. Sind die Daten schon im Cache, bekomme ich immer den Error: Error #2099: Das ladende Objekte ist noch nicht weit genug geladen, um diese Informationen zu liefern.


Erstaunlich is aber, dass ich mir fast alle Infos von LoaderInfo tracen kann, allerdings kann auf LoaderInfo.content nicht mehr zugegriffen werden.

Code:
    private function showImage ( ref : String ) : void        {            // Effects            _loader = new Loader( );            _loader = proxy.getLoader( ref );                        if( _loader.contentLoaderInfo.bytesLoaded > 0 )            {                if( _loader.contentLoaderInfo.bytesLoaded == _loader.contentLoaderInfo.bytesTotal )                {                                        // obwohl gleich ist Zugriff auf _loader.contentLoaderInfo.content nicht möglich                    blendImages( _loader.contentLoaderInfo );                }            }else            {                _loader.contentLoaderInfo.addEventListener( Event.COMPLETE , onCompleteHandler );            }                    }private function onCompleteHandler ( event : Event ) : void        {            var loaderInfo : LoaderInfo = event.target as LoaderInfo;                        blendImages( loaderInfo );             loaderInfo.removeEventListener( Event.COMPLETE , onCompleteHandler );        }private function blendImages ( loaderInfo : LoaderInfo ) : void        {            var newImage : DisplayObject = _imageLayer.addChild( loaderInfo.content );                        newImage.alpha = 0;            Tweener.addTween( newImage , {alpha: 1, x: 0, time:.5} );                        if( _imageLayer.numChildren >= 2 )            {                var tmp : Bitmap = Bitmap( _imageLayer.getChildAt( _imageLayer.numChildren - 2 ) );                Tweener.addTween( tmp , {alpha: 0, time:1, onComplete: removeDisplayObject, onCompleteParams:[ tmp ]} );            }        }

Habe ich hier einen Denkfehler? Wenn bytesLoaded und bytesTotal gleich sind, muss doch .content erreichbar sein?

Ich danke wieder für jeden Hinweis!

skittles
skittles ist offline   Mit Zitat antworten
Alt 13-03-2010, 10:31   #2 (permalink)
{flasher}
 
Benutzerbild von Majo
 
Registriert seit: Mar 2003
Ort: on water
Beiträge: 2.825
wozu brauchst du diese if`s in showImage?
Event.COMPLETE reicht doch
__________________
hang loose
Majo ist offline   Mit Zitat antworten
Alt 13-03-2010, 10:36   #3 (permalink)
Neuer User
 
Registriert seit: Apr 2007
Beiträge: 143
Hey,

proxy.getLoader( ref ) liefert nicht jedes mal einen neuen Loader sondern die LoaderInstanz zu "ref". Sprich das Complete wird auch nur ein einziges mal ausgeworfen, nämlich beim 1. Ladevorgang der "ref".

Die if-Abfragen stellen sicher, ob die LoaderInstanzs schon etwas geladen hat, und ob die LoaderInstanz komplett geladen hat.

Gruß!

skittles
skittles ist offline   Mit Zitat antworten
Alt 13-03-2010, 11:17   #4 (permalink)
Certified dump
 
Registriert seit: Aug 2001
Beiträge: 1.163
Warum diese Bastelei -
dafür gibts extra die Events COMPLETE und Progress
__________________
_______
rudi66 ist offline   Mit Zitat antworten
Alt 13-03-2010, 11:26   #5 (permalink)
Neuer User
 
Registriert seit: Apr 2007
Beiträge: 143
Hmm, ich versuche es noch einmal zu erklären.

Wird das Bild ein erstes mal geladen, wird das onComplete - Event richtig gefeuert. Soll das Bild erneut geladen werden, der Loader ist allerdings schon vorhanden, und somit kann der Loader ( LoaderInfo) kein neues onComplete feuern, es wird ja kein neuer Prozess angestossen.

Bekomme ich also einen Loader ( LoaderInfo ) zurück, der ein komplett fertig geladenen Inhalt enthält ( _loader.contentLoaderInfo.bytesLoaded == _loader.contentLoaderInfo.bytesTotal ), möchte ich diesen Inhalt direkt anzeigen, dafür die Bastelei. Aber ich denke ich muss dann wieder einen Schritt zurückgehen und doch jedes Mal das Bild mit einer neuen Loaderinstanz laden, damit es angezeigt werden kann.

Gruß!

skittles
skittles ist offline   Mit Zitat antworten
Alt 13-03-2010, 13:28   #6 (permalink)
{flasher}
 
Benutzerbild von Majo
 
Registriert seit: Mar 2003
Ort: on water
Beiträge: 2.825
du musst doch nicht jedesmal eine neue instanz vom loader erzeugen um ein neues bild zu laden
du musst den loader nur in der klasse instanzieren und nicht in einer funktion
__________________
hang loose
Majo 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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Error #2044: ioError unverarbeitet. text=Error #2032: Stream-Fehler TianK ActionScript 3 4 23-12-2010 17:50
IO-Error aufgetreten: Error=Error #2032: Stream-Fehler nicciko ActionScript 3 10 17-04-2009 12:46
Error #2044: IOErrorEvent unverarbeitet. text=Error #2036: Ladevorgang nicht abgeschl SpecOps-12 ActionScript 3 2 06-01-2009 11:03
Error: AS2-Klassen können nicht geladen werden h-h-george Flash 8 11 18-11-2008 00:07
Error-Meldung: Error: exception during transcoding: unrecognized fill style type: 80 FLASHStyler ActionScript 3 5 10-07-2008 14:55


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:01 Uhr.

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


Copyright ©1999 – 2014 Marc Thiele