Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Заливка объекта растром из Библиотеки (http://www.flasher.ru/forum/showthread.php?t=205758)

Fogflasher 20.12.2013 15:02

Заливка объекта растром из Библиотеки
 
В Библиотеке Flash IDE есть два объекта:

name: Kvadrat, Type: MovieClip, Class: Kvadrat, Base Class: flash.display.MovieClip
name: texture1, Type: Bitmap, Class: Texture1, Base Class: flash.display.BitmapData

Пробую залить квадрат посредством следующего кода:

Код AS3:

package
{
        import flash.display.*;
 
        public class Main extends Sprite
        {
                //=== CLASS MEMBERS ===//
                private var kvadrat = new Kvadrat();
                private var texture = new Texture1(0, 0);
 
 
                //=== CONSTRUCTOR ===//
                public function Main()
                {
                        initStage();
                }
 
                //=== METHOD ===//
                private function initStage()
                {
                        kvadrat.x = 50;
                        kvadrat.y = 50;
                        this.addChild(kvadrat);
 
                        kvadrat.graphics.beginBitmapFill(texture);
 
                }
 
        }
 
}

В результате заливка не получается. Ошибок нет, пустой квадрат выводится на экран.

samana 20.12.2013 15:12

Вы не можете залить уже нарисованную (вручную) фигуру с помощью кода.
Чтобы программно залить область, вам нужно и нарисовать программно эту область.
То-есть к вашему коду, после выполнения заливки картинкой, нужно нарисовать что-то, допустим квадрат.
Код AS3:

kvadrat.graphics.beginBitmapFill(texture);
kvadrat.graphics.drawRect(0,0,100,100);


Fogflasher 20.12.2013 15:25

samana, спасибо, но что-то не работает.

Пробовал еще в конце добавить:
Код AS3:

kvadrat.graphics.endFill();

Но тоже не помогло. Может быть вообще нельзя рукотворные объекты программно заливать.

samana 20.12.2013 15:29

Вы кое-что не увидели.
Цитата:

Сообщение от Fogflasher
Может быть вообще нельзя рукотворные объекты программно заливать.

Цитата:

Сообщение от samana
Вы не можете залить уже нарисованную (вручную) фигуру с помощью кода.


Isfet 20.12.2013 16:05

если вам нужно чтобы у объекта менлась заливка есть такие варианты:
1. рисуете фигуру программно с помощью graphics и перерисовываете.
2. рисуете вручную мувиклип с нужным количеством кадров, в каждом кадре меняете заливку


программно рисуется так :
Код AS3:

 
package
{
        import flash.display.*;
 
        public class Main extends Sprite
        {
                //=== CLASS MEMBERS ===//
                private var kvadrat = new Kvadrat();
                private var texture = new Texture1(0, 0);
 
 
                //=== CONSTRUCTOR ===//
                public function Main()
                {
                        initStage();
                }
 
                //=== METHOD ===//
                private function initStage()
                {
                        var sprite:Sprite = Sprite();
                                      sprite.graphics.beginFill(0x346666);// цвет заливки
                                      sprite.graphics.drawRect(50,50,100,100);
                                      sprite.graphics.endFill();
                                addChild(sprite);
 
 
                }
 
        }
 
}


Fogflasher 23.12.2013 15:59

samana,
Цитата:

Вы кое-что не увидели.
Просто неправильно интерпретировал последнее предложение.

Isfet,
Цитата:

рисуете вручную мувиклип с нужным количеством кадров, в каждом кадре меняете заливку
Спасибо. Похоже для рукотворных мувиклипов это самый правильный способ.


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

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