Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Просветите насчет Rectangle (http://www.flasher.ru/forum/showthread.php?t=137662)

mikhailk 19.03.2010 14:11

Просветите насчет Rectangle
 
Документацию почитал, но по причине пятницы не догоняю.
Нужно из экрана 800х600 вырезать кусок 400х300, начиная с текущих координат фоторамки, которая ползает сверху.

Код AS3:

                function photoBoxGetImage(event:MouseEvent):void {
 
                        var bmpdata:BitmapData = new BitmapData(400, 300);
                        var rect:Rectangle = new Rectangle(photoBox.x, photoBox.y, 400, 300);
 
                        bmpdata.draw(stage,null,null,null,rect);
                        var bitmap:Bitmap = new Bitmap(bmpdata);
 
                        // Смотрим, что получилось
                        addChild(bitmap);                       
 
 
                }

Работает, если, координаты фоторамки (0,0).
В противном случае - не работает.
Видимо и не должно.
Что конкретно нужно подправить?

iNils 19.03.2010 14:27

Код AS3:

function photoBoxGetImage(event:MouseEvent):void {
        var bmpdata:BitmapData = new BitmapData(400, 300);
        var rect:Rectangle = new Rectangle(0, 0, 400, 300);
        var matrxi:Matrix = new Matrix ();
        matrix.tx = -photoBox.x;
        matrix.ty = -photoBox.y;
        bmpdata.draw(stage,matrix,null,null,rect);
        var bitmap:Bitmap = new Bitmap(bmpdata);
 
        // Смотрим, что получилось
        addChild(bitmap);
}


GentleFLASH 19.03.2010 14:31

матрицу при рисовании нужно изменить еще

mikhailk 19.03.2010 16:26

ок, работает

окончательный код (вдруг кому пригодится)

Код AS3:

                function photoBoxGetImage(event:MouseEvent):void {
 
                        var bmpdata:BitmapData = new BitmapData(400, 300);
 
                        var rect:Rectangle = new Rectangle(0, 0, 400, 300);
                        var matrix:Matrix = new Matrix ();
                        matrix.tx = -photoBox.x;
                        matrix.ty = -photoBox.y;
 
                        bmpdata.draw(stage,matrix,null,null,rect);
 
                        var bitmap:Bitmap = new Bitmap(bmpdata);
 
                        // Смотрим, что получилось
                        addChild(bitmap);                       
 
 
                }



Часовой пояс GMT +4, время: 08:50.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.