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

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

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

Регистрация: May 2009
Сообщений: 30
По умолчанию Изменение цвета спрайта.

надо сделать такую штуку.
Есть простенький Shape -квадрат, размером 1x1 пиксель с заданным цветом. Хочу сделать кучу однотипных спрайтов с немного различающейся графикой внутри и с этим шейпом в качестве фона и, что самое важное, поменять потом цвет шейпа(фона) во всех спрайтах за 1 клик. Как лучше реализовать?
До этого делал те же манипуляции, но не надо было менять цвет. У меня был спрайт в библиотеке и всё работало. Но вот теперь добавился цвет и я затупил...

Старый 18.09.2010, 20:09
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 2  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Странная реализация - однопиксельный квадрат оО
transform/Matrix вам в руки.
__________________
тут я

Старый 18.09.2010, 20:24
a7z вне форума Посмотреть профиль Отправить личное сообщение для a7z Найти все сообщения от a7z
  № 3  
Ответить с цитированием
a7z

Регистрация: May 2009
Сообщений: 30
Цитата:
Сообщение от КорДум Посмотреть сообщение
Странная реализация - однопиксельный квадрат оО
transform/Matrix вам в руки.
ну я упростил там был не то, чтобы однопиксельный квадрат, был на самом деле аж целый спрайт с минимальной графикой, который я потом использовал, где только можно. а сейчас смысл в том, что есть динамически созданные спрайты, которые можно двигать после создания, удалять и т.д. раньше я брал из библиотеки "спрайт-образец" и изменял его, как нужно, а теперь еще и цвет этого образца надо менять..
ну в общем ок, буду копать transform/Matrix, пасиб!

p.s. чета пока не найду связь межу матрицей и задачей =(


Последний раз редактировалось a7z; 18.09.2010 в 20:32.
Старый 18.09.2010, 20:44
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 4  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
flash.display.DisplayObject#transform.colorTransform
__________________
Reality.getBounds(this);

Старый 18.09.2010, 21:09
a7z вне форума Посмотреть профиль Отправить личное сообщение для a7z Найти все сообщения от a7z
  № 5  
Ответить с цитированием
a7z

Регистрация: May 2009
Сообщений: 30
Цитата:
Сообщение от Wolsh Посмотреть сообщение
flash.display.DisplayObject#transform.colorTransform
вооот. я пробовал colorTransform-работает, но у меня не получилось задействовать его для своих делать, вот что в таком случае делать?
упрощенно, что хочу сделать.
есть код
Код AS3:
var cvet:Shape=new Shape();
function IzmenenieCveta(koordinataX:int,koordinataY:int):void {
	cvet.graphics.beginFill(0x999999);
	cvet.graphics.drawRect(0,0,100,100);
	var s:Sprite=new Sprite();
	s.x=koordinataX;
	s.y=koordinataY;
	s.addChild(cvet);
	this.addChild(s);
}
var cvetColorTransform:ColorTransform = cvet.transform.colorTransform;
cvetColorTransform.color = 0x000000;
cvet.transform.colorTransform = cvetColorTransform;  
IzmenenieCveta(0,0);
IzmenenieCveta(100,100);
Когда я вызываю функцию, то цвет меняется,но не так, как надо работает отображение спрайтов(не в плане неправильно, а в плане, не так,как хотелось бы )..
Если я делаю так:
Код AS3:
function IzmenenieCveta(koordinataX:int,koordinataY:int):void {
    var cvet:Shape=new Shape();
    cvet.graphics.beginFill(0x999999);
    cvet.graphics.drawRect(0,0,100,100);
    var s:Sprite=new Sprite();
    s.x=koordinataX;
    s.y=koordinataY;
    s.addChild(cvet);
    this.addChild(s);
}
 
var cvetColorTransform:ColorTransform = cvet.transform.colorTransform;
cvetColorTransform.color = 0x000000;
cvet.transform.colorTransform = cvetColorTransform;            
IzmenenieCveta(0,0);
IzmenenieCveta(100,100);
То работает функция, но я не могу "дотянутся" до цвета.
Вот как сделать, чтобы и функция работала и цвет менялся??

Старый 18.09.2010, 22:52
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 6  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
http://help.adobe.com/ru_RU/AS3LCR/F...Transform.html
Товарищ хелп вам поможет, там внизу пример применения, а вы применяете неверно.
__________________
тут я

Старый 19.09.2010, 12:46
a7z вне форума Посмотреть профиль Отправить личное сообщение для a7z Найти все сообщения от a7z
  № 7  
Ответить с цитированием
a7z

Регистрация: May 2009
Сообщений: 30
Цитата:
Сообщение от КорДум Посмотреть сообщение
http://help.adobe.com/ru_RU/AS3LCR/F...Transform.html
Товарищ хелп вам поможет, там внизу пример применения, а вы применяете неверно.
ок, товарищ
Даже если я не правильно применяю, то дело не в цвете.
Я не знаю, как правильней сделать это изменение для n-ого количества спрайтов, которые являются детьми других спрайтов.

Старый 19.09.2010, 12:58
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 8  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Цитата:
ок, товарищ
хелп - товарищ (:

Я бы загнал все ссылки на фоны в массив, потом тупо циклом прогонялся и менял. Или можно сделать у класса фона статичный метод, он будет один для всех фонов, один раз применить - вуаля! Хотя, статичный метод не подразумевает использование this... Хм, Тогда наверно первый способ. Скорее всего, есть более рациональное решение.
__________________
тут я


Последний раз редактировалось КорДум; 19.09.2010 в 13:01.
Старый 19.09.2010, 13:06
a7z вне форума Посмотреть профиль Отправить личное сообщение для a7z Найти все сообщения от a7z
  № 9  
Ответить с цитированием
a7z

Регистрация: May 2009
Сообщений: 30
Цитата:
Сообщение от КорДум Посмотреть сообщение
хелп - товарищ (:

Я бы загнал все ссылки на фоны в массив, потом тупо циклом прогонялся и менял. Или можно сделать у класса фона статичный метод, он будет один для всех фонов, один раз применить - вуаля! Хотя, статичный метод не подразумевает использование this... Хм, Тогда наверно первый способ. Скорее всего, есть более рациональное решение.
ну вот я думал, что может кто-то знает варианты, как это без циклов сделать, но видимо придется с циклами...

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Можно и без циклов, но проще не будет. Если сделать эти фоновые спрайтики своего класса, определить в нем метод перекраски (проще по-моему перерисовки с новым цветом заливки)) и при создании каждый экземпляр подписывать на событие "перекраситься!" от управляющего класса.
__________________
Reality.getBounds(this);

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

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

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


 


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


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