Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Надо чтобы текстура дублировалась в Bitmap (http://www.flasher.ru/forum/showthread.php?t=208371)

54321go 05.07.2014 01:00

Надо чтобы текстура дублировалась в Bitmap
 
Есть картинка Bitmap, если она меньше нужного размера, надо чтобы она дублировалась на пустое пространство.
Наверное это делать через BitmapData но как?

GBee 05.07.2014 02:03

Какое пустое пространство?

alexandrratush 05.07.2014 02:30

Вы про это спрашивали?
Код AS3:

package  
{
        import flash.display.Bitmap;
        import flash.display.BitmapData;
        import flash.display.Sprite;
 
        /**
        * ...
        * @author ratush
        */

        public class RepeatBitmap extends Sprite
        {
                [Embed(source = "../assets/apple.png")]
                private var appleAsset:Class;
 
                private var _bm:Bitmap;
 
                private var _bmd:BitmapData;
 
                private var _container:Sprite;
 
                public function RepeatBitmap()
                {
                        super();
 
                        _bm = new appleAsset as Bitmap;
 
                        _bmd = _bm.bitmapData;
 
                        _container = new Sprite();
                        _container.graphics.clear();
                        _container.graphics.beginBitmapFill(_bmd);
                        _container.graphics.drawRect(0, 0, 800, 600);
                        addChild(_container);
                }
 
        }
 
}


54321go 05.07.2014 02:44

Цитата:

Сообщение от alexandrratush (Сообщение 1168749)
Вы про это спрашивали?
Код AS3:

package  
{
        import flash.display.Bitmap;
        import flash.display.BitmapData;
        import flash.display.Sprite;
 
        /**
        * ...
        * @author ratush
        */

        public class RepeatBitmap extends Sprite
        {
                [Embed(source = "../assets/apple.png")]
                private var appleAsset:Class;
 
                private var _bm:Bitmap;
 
                private var _bmd:BitmapData;
 
                private var _container:Sprite;
 
                public function RepeatBitmap()
                {
                        super();
 
                        _bm = new appleAsset as Bitmap;
 
                        _bmd = _bm.bitmapData;
 
                        _container = new Sprite();
                        _container.graphics.clear();
                        _container.graphics.beginBitmapFill(_bmd);
                        _container.graphics.drawRect(0, 0, 800, 600);
                        addChild(_container);
                }
 
        }
 
}


Да спасибо, про это, но желательно бы реализовать без Sprite только Bitmap.

alexandrratush 05.07.2014 11:18

Код AS3:

package  
{
        import flash.display.Bitmap;
        import flash.display.BitmapData;
        import flash.display.Sprite;
 
        /**
        * ...
        * @author ratush
        */

        public class RepeatBitmap extends Sprite
        {
                [Embed(source = "../assets/apple.png")]
                private var appleAsset:Class;
 
                private var _bmSource:Bitmap;
 
                private var _bmResult:Bitmap;
 
                private var _bmd:BitmapData;
 
                private var _container:Sprite;
 
                public function RepeatBitmap()
                {
                        super();
 
                        _bmSource = new appleAsset as Bitmap;
 
                        _bmd = _bmSource.bitmapData;
 
                        _container = new Sprite();
                        _container.graphics.clear();
                        _container.graphics.beginBitmapFill(_bmd);
                        _container.graphics.drawRect(0, 0, 800, 600);
 
                        var _bmd:BitmapData = new BitmapData(_container.width, _container.height);
                                _bmd.draw(_container);
 
                        _bmResult = new Bitmap(_bmd);
                        addChild(_bmResult);
 
                        _container = null;
                        _bmSource = null;
                }
 
        }
 
}

Может есть более изящное решение, но пока только это пришло в голову.:)

54321go 05.07.2014 22:22

Цитата:

Сообщение от alexandrratush (Сообщение 1168753)
Код AS3:

package  
{
        import flash.display.Bitmap;
        import flash.display.BitmapData;
        import flash.display.Sprite;
 
        /**
        * ...
        * @author ratush
        */

        public class RepeatBitmap extends Sprite
        {
                [Embed(source = "../assets/apple.png")]
                private var appleAsset:Class;
 
                private var _bmSource:Bitmap;
 
                private var _bmResult:Bitmap;
 
                private var _bmd:BitmapData;
 
                private var _container:Sprite;
 
                public function RepeatBitmap()
                {
                        super();
 
                        _bmSource = new appleAsset as Bitmap;
 
                        _bmd = _bmSource.bitmapData;
 
                        _container = new Sprite();
                        _container.graphics.clear();
                        _container.graphics.beginBitmapFill(_bmd);
                        _container.graphics.drawRect(0, 0, 800, 600);
 
                        var _bmd:BitmapData = new BitmapData(_container.width, _container.height);
                                _bmd.draw(_container);
 
                        _bmResult = new Bitmap(_bmd);
                        addChild(_bmResult);
 
                        _container = null;
                        _bmSource = null;
                }
 
        }
 
}

Может есть более изящное решение, но пока только это пришло в голову.:)

Спасибо, так думаю тоже пойдет.


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

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