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

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

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

Регистрация: Aug 2012
Адрес: Росиия, Тольятти
Сообщений: 9
Attention Изменение цвета клипа при наведении курсора

Помогите, пожалуйста разобраться! Я новичок, с программированием знакома плохо, но задачу поставили и ее необходимо выполнить Суть такова - есть план этажа, на котором обозначены отделы (каждый отдел - отдельный мувик); есть код, который реализует появление всплывающей подсказки, когда курсор находится над каким-либо отделом. Я нашла код, который полностью поставленную задачу решает. Но! Мне нужно чтобы в момент нахождения курсора над мувиком он менял не прозрачность, а цвет. И вот тут у меня полный затык. Вот сам код:
Код AS3:
import flash.net.URLLoader;
import flash.events.Event;
import flash.net.URLRequest;
var request:URLRequest = new URLRequest ();
request.url = "data.xml";
var loader:URLLoader = new URLLoader();
var postsList:XMLList;
var postsNum:uint;
var ContekstSod:String;
var Interval:uint;
var OsX:int;
var OsY:int;
OsX = 1024;// Указать ширину клипа
OsY = 768;// указать высоту клипа
 
balloon.visible = false;
 
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE, printResponse);
loader.load(request);
 
function printResponse(e:Event):void {
	var otv:XML = e.target.data.response;
	var response:XML = XML(e.target.data.result);
	postsList = response.post;
	postsNum = postsList.length();
}
 
this.addEventListener(MouseEvent.MOUSE_OVER,over);
this.addEventListener(MouseEvent.MOUSE_OUT,out);
 
function over(e:MouseEvent):void {
	var zzz:String;
	e.target.alpha = 0.4;
	zzz = e.target.name;
	ContekstSod = postsList[0]. @ [zzz];
	Interval = setInterval(PokazatFnc,1000);// Вот тут установлени интервал! 1000 = 1 секунде
}
 
function PokazatFnc():void {
	var MX:int;
	var MY:int;
	MX = mouseX;
	MY = mouseY;
	if (OsX - MX < 265) {
		MX = MX - 265;
	}
	if (OsY - MY < 110) {
		MY = MY - 110;
	}
	balloon.x = MX;
	balloon.y = MY;
	balloon.visible = true;
	balloon.balloontxt.text = ContekstSod;
	clearInterval(Interval);
}
 
function out(e:MouseEvent):void {
	balloon.visible = false;
	e.target.alpha = 1;
	clearInterval(Interval);
}
Подозреваю, что должна что-то написать вместо строчки
Код AS3:
e.target.alpha = 0.4;
Пыталась использовать класс ColorTransform, но не могу правильно написать код, при тестировании - ничего не срабатывает.


Последний раз редактировалось Wolsh; 30.08.2012 в 15:12.
Старый 30.08.2012, 15:46
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 2  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
http://silin.su/#AS3/filters/color
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 30.08.2012, 20:08
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 3  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Koopa, очень конструктивно, да.

mirross, попробуйте в мувиках создать анимацию изменения цвета и при наведении запускать ее.
__________________
hauts.ru

Старый 30.08.2012, 23:20
zerAlex2 вне форума Посмотреть профиль Отправить личное сообщение для zerAlex2 Найти все сообщения от zerAlex2
  № 4  
Ответить с цитированием
zerAlex2

Регистрация: Nov 2005
Сообщений: 148
Возьми GreenShok Tint или их же TransformColorMatrix

Старый 31.08.2012, 14:32
Frost47rus вне форума Посмотреть профиль Отправить личное сообщение для Frost47rus Найти все сообщения от Frost47rus
  № 5  
Ответить с цитированием
Frost47rus
[+4 08.09.13]

Регистрация: May 2012
Сообщений: 131
Код AS3:
var ct:ColorTransform = new ColorTransform();
var someColor:uint = 151651; //код цвета
ct.color = someColor;
e.target.transform.colorTransform = ct;

Старый 31.08.2012, 14:49
mirross вне форума Посмотреть профиль Отправить личное сообщение для mirross Найти все сообщения от mirross
  № 6  
Ответить с цитированием
mirross

Регистрация: Aug 2012
Адрес: Росиия, Тольятти
Сообщений: 9
Hauts, Frost47rus - спасибо за помощь! Сейчас буду пробовать...

Подскажите пожалуйста еще, а чтобы мувик не локально заливался каким-либо цветом, а как бы тонировался - то есть если это, скажем, зеленая трехмерная коробочка - а при наведении "коробочка" меняет цвет и становится красная, какой параметр необходимо дописать и куда? Я так понимаю, что нужный эффект будет, если дописать свойство tintColor, но как правильно написать?


Последний раз редактировалось mooncar; 31.08.2012 в 16:52.
Старый 31.08.2012, 16:34
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 7  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Tint то как раз "заливает".
Вы смотрели вообще эту ссылку http://silin.su/#AS3/filters/color ?
__________________
Reality.getBounds(this);

Старый 31.08.2012, 16:57
mirross вне форума Посмотреть профиль Отправить личное сообщение для mirross Найти все сообщения от mirross
  № 8  
Ответить с цитированием
mirross

Регистрация: Aug 2012
Адрес: Росиия, Тольятти
Сообщений: 9
Мне и надо, чтоб заливало - если я на панели выбираю цвет - то заливает как раз так, как надо, объект не становится сплошным пятном, он остается объемным, только цвет меняется. Не знаю, внятно объяснила или нет. Например есть псевдообъемный куб, зеленый. И вот при наведении курсора мне нужно, чтобы он становился красным, при этом не превращаясь в пятно, а оставаясь таки кубом. У меня пока меняется только прозрачность, но мне нужно чтобы менялась не прозрачность, а цвет.
Ссылку смотрела, конечно. Только, простите, если уж я со своим кодом не знаю как справиться, чтоб решить как мне надо, задачу, то по данной ссылке я просто не поняла, чем мне может она помочь.

Старый 31.08.2012, 19:15
zerAlex2 вне форума Посмотреть профиль Отправить личное сообщение для zerAlex2 Найти все сообщения от zerAlex2
  № 9  
Ответить с цитированием
zerAlex2

Регистрация: Nov 2005
Сообщений: 148
Цитата:
Сообщение от Wolsh Посмотреть сообщение
Tint то как раз "заливает".
А colorMatrixFilter подкрашивает )

Код AS3:
import com.greensock.*; 
import com.greensock.easing.*;
 
TweenMax.to(mc, 1, {colorMatrixFilter:{colorize:0xff0000, amount:1}});
Тут сам GreenShok: http://www.greensock.com/v12/

Старый 03.09.2012, 13:49
mirross вне форума Посмотреть профиль Отправить личное сообщение для mirross Найти все сообщения от mirross
  № 10  
Ответить с цитированием
mirross

Регистрация: Aug 2012
Адрес: Росиия, Тольятти
Сообщений: 9
Цитата:
Сообщение от zerAlex2 Посмотреть сообщение
Код AS3:
TweenMax.to(mc, 1, {colorMatrixFilter:{colorize:0xff0000, amount:1}});
Как подключить TweenMax? Скачать-то скачала, а что дальше делать? И mc - это же имя мувика? А если у меня мувики жестко не прописаны, то есть анимация совершается при прохождении курсора мыши над любым мувиком на сцене?

Добавлено через 5 минут
Вообще, задачку свою я решила, удалось добиться желаемого, просто создав еще один слой с теми же мувиками, только перекрашенными в другой нужный цвет уже. А на верхнем слое - те же мувики с исходным цветом, но теперь применяемая к ним прозрачность (которая у меня работала нормально) позволяет добиться эффекта, словно мувик из зеленого становится оранжевым при наведении курсора, а при убирании оного - обратно становится зеленым. Что мне и требовалось. Но мне все равно интересно до конца разобраться, как же можно было программным способом решить? Пока что ни одно предложенное решение я не сумела нормально внедрить в свой код Понимаю, что еще очень многого не знаю, но хотелось бы с вашей помощью разобраться!

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

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

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


 


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


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