Flashhilfe.de - Flash Community

Einen ByteArray dekomprimieren [Flash 10]

 


AntwortenRegistrieren Seite1  

f0rml3ss#1
Benutzerbild von f0rml3ss
Beiträge: 447
Registriert: Mar 2008

05.01.2010, 00:32

Ich habe einen Vector mit ByteArray's - diese werden mit BitmapData's gefüttert

Dieser Vector kommt in ein SharedObject, damit ich ihn speichern / aufrufen kann
path: lso.data.raw

Funktion zum Schreiben:
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
      internal function writeLSO(e:Event=null):void
      {
         lso = SharedObject.getLocal("protokoll");
         var old:Vector.<ByteArray> = new Vector.<ByteArray>();
         for (var i:int = 0; i < lso.data.raw.length;++i) {
            old.push(lso.data.raw[i]);
         }
         
         var currentStatus:ByteArray =  canvasBD1.getPixels(getRect(canvasBitmap1));
         currentStatus.compress(); //hier comprimieren
         old.push(currentStatus);      
         lso.data.raw = old;
         lso.flush();
         
         createHistory();
      }



Funktion zum Lesen:
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
      internal function readLSO(e:Event=null):void
      {
         //clear
         Protokoll(root).canvasBD1.fillRect(Protokoll(root).getRect(Protokoll(root).canvasBitmap1), 0xFFFFFF);
         
         //update
         Protokoll(root).lso = SharedObject.getLocal("protokoll");
         var ba:ByteArray = new ByteArray();
         ba = Protokoll(root).lso .data.raw[int(txt.text.substr(txt.text.length - 2, 2)) - 1];
         ba.uncompress(); //Dekomprimieren
         ba.position = 0;
         Protokoll(root).canvasBD1.setPixels(Protokoll(root).getRect(Protokoll(root).canvasBitmap1), ba);
      }   



jedoch bekomme ich den Fehler:
"information=Error: Error #2058: Fehler beim Dekomprimieren der Daten."
Dieser tritt jedoch nur auf, wenn ich die swf geschlossen hatte und wieder versuche die alten Werte abzurufen.
Wenn ich jedoch in der gleichen "Laufzeit" die Daten schreibe und lese habe ich keine Probleme.
Adobe AS3.0 Stichwortverzeichnis
Geändert von f0rml3ss am 05.01.10 um 00:35 Uhr
Werbung
Beiträge: 0
Registriert: Feb 2016


f0rml3ss#2
Benutzerbild von f0rml3ss
Beiträge: 447
Registriert: Mar 2008

Themenautor/in

05.01.2010, 22:23

Fehler gefunden..
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
      internal function readLSO(e:Event=null):void
      {
        //clear
        Protokoll(root).canvasBD1.fillRect(Protokoll(root).getRect(Protokoll(root).canvasBitmap1), 0xFFFFFF);
       
        //update
        Protokoll(root).lso = SharedObject.getLocal("protokoll");
        var ba:ByteArray = new ByteArray();
        ba = Protokoll(root).lso .data.raw[int(txt.text.substr(txt.text.length - 2, 2)) - 1];
        ba.uncompress(); //Dekomprimieren
        ba.position = 0;
        Protokoll(root).canvasBD1.setPixels(Protokoll(root).getRect(Protokoll(root).canvasBitmap1), ba);
        ba.compress(); //HIER COMPRESS SETZEN
      } 


Ich dachte eigentlich, dass er auf das local ByteArray zugreift und dieses Dekomprimiert aber es scheint, als ob er das LSO neuschreibt...und dann ist das ByteArray darin schon dekomprimiert und kann es deshalb nicht nocheinmal.
Ursache lag wohl darin, das er es nur dekomprimiert hat und beim schließen der Datei alles gespeichert hat..
Adobe AS3.0 Stichwortverzeichnis

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2019 Sebastian Wichmann - Flashhilfe.de