{lang: 'de'}
Flashhilfe.de - Flash Community

caching und rendering eines spritesheets funzt nicht [Flash 10]

 


AntwortenRegistrieren Seite1  

drpelz#1
Benutzerbild von drpelz
Beiträge: 15
Registriert: Jul 2011

26.10.2011, 02:50

Hallo Leute;

ich wurde gerne meine spritesheets cachen (in Array schmeissen). Ich will mein System so haben dass meine Objekte auf den Cache (es wird mehrere unterschiedliche Zaches geben) mit den bitmapDatas bloss noch zugreifen muessen. Aber irgendwie funktioniert das nicht, denn es wird absolut nichts gerendert. Und zwar gar nichts. Fehlermeldungen habe ich auch keine gesehen.

Im cache selbst befindet sich durchaus was (ich gehe mal davon aus dass es bitmapDatas sind) und null ist es auch nicht aber irgendwie wird rein gar nichts aus dem cache heraus gerendert.

Es wäre sehr nett, wenn mir da bitte jemand weiterhelfen koennte denn ich komme da einfach nicht mehr weiter. Vielen Dank.



diese Funktion soll die einzelnen Titels aus dem Spritesheet heraus erstellen und in einen Array (cache) schmeissen
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
private function tileToCache():void {
           var tileBitmapData:BitmapData = new BitmapData(tileWidth, tileHeight, true, 0x00000000);
           var tilePt:Point = new Point(0, 0);
           var tileRect:Rectangle = new Rectangle;
           
           
           tileCache = [];
           
           for (var tileCtr:int = 0; tileCtr < tilesLength; tileCtr++) {
              
              tileBitmapData.lock();
              tileRect.x = int((tileCtr % spritesPerRow)) * tileWidth;
              tileRect.y = int((tileCtr / spritesPerRow)) * tileHeight;
              
              tileBitmapData.copyPixels(tileSheet, tileRect, tilePt);
              tileBitmapData.unlock();
 
              tileCache.push(tileBitmapData);
              
           }
}


diese Funktion soll die Tiles aus dem Array heraus auf einen Hintergrund rendern mit der copyPixels-Methode
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
public function renderCachedTile(canvasBitmapData:BitmapData, tileArray:Array):void
      {
           
           tileCache = tileArray;
           
           tileArray = [];
           
           x = nextX;
           y = nextY;
           
           point.x = x;
           point.y = y;
           
           tileRect.x = tileWidth;
           tileRect.y = tileHeight;
           
           if (animationCount >= animationDelay)
           {
              animationCount = 0;
              
              if(reverse)
              {
                 currentTile--;
                 if (currentTile < 1)
                 {
                    currentTile = tilesLength - 1;
                 }
                 
                 
              } else {
                 
                 currentTile++;
                 if (currentTile >= tilesLength - 1)
                 {
                    currentTile = 0;
                 }
                 
                 
              }
              
           } else {
              animationCount++;
           }
              
           canvasBitmapData.lock();   
           
           
           canvasBitmapData.copyPixels(tileCache[currentTile], tileRect, point);
           canvasBitmapData.unlock();
           
           
        }

Geändert von drpelz am 26.10.11 um 02:51 Uhr
badskill#2
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

26.10.2011, 22:57

Hi,
BitmapData an sich ist kein Anzeigeobjekt. Mir fehlt die Zuweisung der BitmapData an eine Bitmap-Instanz in deinem Skript.

AntwortenRegistrieren Seite1  

Schnellantwort

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

 
Ähnliche Beiträge zum Thema
Ein Lob an die Admins [Flash CS5] 08.05.2022 - Indy_Crossover
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2022 Sebastian Wichmann - Flashhilfe.de