Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.12.2013, 15:02
Fogflasher вне форума Посмотреть профиль Отправить личное сообщение для Fogflasher Найти все сообщения от Fogflasher
  № 1  
Ответить с цитированием
Fogflasher

Регистрация: Mar 2013
Сообщений: 290
По умолчанию Заливка объекта растром из Библиотеки

В Библиотеке 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);
 
		}
 
	}
 
}
В результате заливка не получается. Ошибок нет, пустой квадрат выводится на экран.

Старый 20.12.2013, 15:12
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 2  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Вы не можете залить уже нарисованную (вручную) фигуру с помощью кода.
Чтобы программно залить область, вам нужно и нарисовать программно эту область.
То-есть к вашему коду, после выполнения заливки картинкой, нужно нарисовать что-то, допустим квадрат.
Код AS3:
kvadrat.graphics.beginBitmapFill(texture);
kvadrat.graphics.drawRect(0,0,100,100);

Старый 20.12.2013, 15:25
Fogflasher вне форума Посмотреть профиль Отправить личное сообщение для Fogflasher Найти все сообщения от Fogflasher
  № 3  
Ответить с цитированием
Fogflasher

Регистрация: Mar 2013
Сообщений: 290
samana, спасибо, но что-то не работает.

Пробовал еще в конце добавить:
Код AS3:
kvadrat.graphics.endFill();
Но тоже не помогло. Может быть вообще нельзя рукотворные объекты программно заливать.

Старый 20.12.2013, 15:29
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 4  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Вы кое-что не увидели.
Цитата:
Сообщение от Fogflasher
Может быть вообще нельзя рукотворные объекты программно заливать.
Цитата:
Сообщение от samana
Вы не можете залить уже нарисованную (вручную) фигуру с помощью кода.

Старый 20.12.2013, 16:05
Isfet вне форума Посмотреть профиль Отправить личное сообщение для Isfet Найти все сообщения от Isfet
  № 5  
Ответить с цитированием
Isfet

Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
если вам нужно чтобы у объекта менлась заливка есть такие варианты:
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);
 
 
		}
 
	}
 
}

Старый 23.12.2013, 15:59
Fogflasher вне форума Посмотреть профиль Отправить личное сообщение для Fogflasher Найти все сообщения от Fogflasher
  № 6  
Ответить с цитированием
Fogflasher

Регистрация: Mar 2013
Сообщений: 290
samana,
Цитата:
Вы кое-что не увидели.
Просто неправильно интерпретировал последнее предложение.

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

Создать новую тему Ответ Часовой пояс GMT +4, время: 14:39.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
bitmap , bitmapdata , заливка растром
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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