2009-04-25 10 views
1

Ich habe eine Leinwand, die eine Zeichenfläche ist. Diese Leinwand kann horizontal und vertikal gescrollt werden.Flex Bipmapdata und Scrolled Canvas

Ich versuche, einen Screenshot der ganze Leinwand zu machen, dazu gehören sichtbare und gescrollte Teile.

var bmd:BitmapData = new BitmapData(board.width, board.height, false, 0xffffff); 
bmd.draw(board); 

Dies würde zeigen mir nur den sichtbaren Teil der Leinwand und die Scroll-Balken:/

Wie würden Sie ein solches Problem lösen? Die Verwendung von board.width + board.horizontalScrollPosition wird in diesem Fall nicht helfen.

Vielen Dank.

Antwort

1

Ich denke, deine beste Wette ist, Leinwände zu nisten. Ein Canvas ist eine feste Größe, die den kleineren scrollbaren Bereich enthält und der andere ist der gesamte Canvas. So etwas wie

<mx:Canvas id="boardContainer" width="800" height="600"> 
    <mx:Canvas id="board" width="800" height="1200" /> 
</mx:Canvas> 

diese Weise erhalten Sie einen Verweis auf eine Leinwand, die nicht maskiert ist, und Sie sollen um einen BitmapData- der gesamten Fläche einnehmen können.

+0

Es funktioniert, danke! Jetzt muss ich viele Dinge umgestalten :) – coulix