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

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

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

Регистрация: Apr 2009
Сообщений: 16
Attention mouseEvent.roll_over забыл

Доброго дня, господа специалисты!
Обращается к вам чайник, помогите.
В сцене (в аттаче), надо чтобы при наведении мышки на кнопку появлялся мувик который лежит на сцене, (но он скрыт:
Код AS3:
mkad.visible = false
). А при уходе с кнопки - пропадал.
Ну как не пойму, как правильно пишется mouseEvent.
Я пишу
Код AS3:
mouseEvent.roll_over
mkad = true;
mouseEvent.roll_out
mkad = false;
Огромная просьба: не пинайте сильно ногами. Давно я этим не занимался....
Вложения
Тип файла: zip example.zip (270.4 Кб, 50 просмотров)
__________________
Молчание "ЗОЛОТО" Вот почему его часто не хватает женщинам!!!

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

Регистрация: Jun 2006
Сообщений: 164
Код AS3:
myButton.addEventListener(MouseEvent.ROLL_OVER, onOver);
myButton.addEventListener(MouseEvent.ROLL_OUT, onOut);
function onOver(e:Event):void
{
   something.visible = true;
}
function onOut(e:Event):void
{
   something.visible = false;
}

Старый 24.04.2009, 22:36
Bol4apa2000 вне форума Посмотреть профиль Отправить личное сообщение для Bol4apa2000 Найти все сообщения от Bol4apa2000
  № 3  
Ответить с цитированием
Bol4apa2000
 
Аватар для Bol4apa2000

Регистрация: Apr 2009
Сообщений: 16
Спасибо огромное.... Работает, но только для одной кнопки, а если я этот код прописываю для 3, как у меня в сцене, то выдает ошибку, типа "Description: Duplicate function definition." Получается в одной сцене только один раз можно использовать этот код, дальше уже получается не нужный дубликат? Может попробовать варьировать: кнопки в один слой сложить; мувики с кнопками в один слои; кнопки с мувики на отдельные слои и т.д.?????? Сейчас у меня в сцене каждая кнопка и каждый мувик лежит в отдельном слое.
__________________
Молчание "ЗОЛОТО" Вот почему его часто не хватает женщинам!!!

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

Регистрация: Nov 2007
Адрес: Moscow
Сообщений: 566
Код AS3:
myButton.addEventListener(MouseEvent.ROLL_OVER, onOver);
myButton.addEventListener(MouseEvent.ROLL_OUT, onOut);
myButton2.addEventListener(MouseEvent.ROLL_OVER, onOver);
myButton2.addEventListener(MouseEvent.ROLL_OUT, onOut);
myButton3.addEventListener(MouseEvent.ROLL_OVER, onOver);
myButton3.addEventListener(MouseEvent.ROLL_OUT, onOut);
function onOver(e:Event):void{
   e.target.visible = true;
}
function onOut(e:Event):void
{
   e.target.visible = false;
}
__________________
#flasher@irc.trg.ru:6667

Старый 24.04.2009, 23:23
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 5  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Лучше в цикле
Код AS3:
...
this["myButton"+i].addEventListener(MouseEvent.ROLL_OVER, onOver);
...
__________________
Отряд Котовскага

Старый 25.04.2009, 10:07
den18k вне форума Посмотреть профиль Отправить личное сообщение для den18k Найти все сообщения от den18k
  № 6  
Ответить с цитированием
den18k

Регистрация: Apr 2009
Сообщений: 7
Цитата:
Сообщение от Obi Посмотреть сообщение
Код AS3:
   e.target.visible = true;
...
   e.target.visible = false;
В AS3 введен список отображения. Не правильнее использовать его?

Старый 25.04.2009, 11:07
Bol4apa2000 вне форума Посмотреть профиль Отправить личное сообщение для Bol4apa2000 Найти все сообщения от Bol4apa2000
  № 7  
Ответить с цитированием
Bol4apa2000
 
Аватар для Bol4apa2000

Регистрация: Apr 2009
Сообщений: 16
Цитата:
Сообщение от Obi Посмотреть сообщение
Код AS3:
myButton.addEventListener(MouseEvent.ROLL_OVER, onOver);
myButton.addEventListener(MouseEvent.ROLL_OUT, onOut);
myButton2.addEventListener(MouseEvent.ROLL_OVER, onOver);
myButton2.addEventListener(MouseEvent.ROLL_OUT, onOut);
myButton3.addEventListener(MouseEvent.ROLL_OVER, onOver);
myButton3.addEventListener(MouseEvent.ROLL_OUT, onOut);
function onOver(e:Event):void{
   e.target.visible = true;
}
function onOut(e:Event):void
{
   e.target.visible = false;
}
Спасибо за ответ, но если я правильно понял, то в этом случае необходимо чтобы все кнопки были на одном слое и клип открывали один и тот же? Поправьте меня если что...
Ведь параметр
Код AS3:
function onOver(e:Event):void{
   e.target.visible = true;
}
function onOut(e:Event):void
{
   e.target.visible = false;
}
не указывает какая кнопка, какой клип показывает. А мне нужно что-то типа:
Код AS3:
myButton1.addEventListener(MouseEvent.ROLL_OVER, onOver);
myButton1.addEventListener(MouseEvent.ROLL_OUT, onOut);
function onOver(e:Event):void{
   my_clip1.target.visible = true;
}
function onOut(e:Event):void
{
   my_clip1.target.visible = false;
}
myButton2.addEventListener(MouseEvent.ROLL_OVER, onOver);
myButton2.addEventListener(MouseEvent.ROLL_OUT, onOut);
unction onOver(e:Event):void{
   my_clip2.target.visible = true;
}
function onOut(e:Event):void
{
   my_clip2.target.visible = false;
}
myButton3.addEventListener(MouseEvent.ROLL_OVER, onOver);
myButton3.addEventListener(MouseEvent.ROLL_OUT, onOut);
unction onOver(e:Event):void{
   my_clip3.target.visible = true;
}
function onOut(e:Event):void
{
   my_clip3.target.visible = false;
}
Но в этом случае, я "насорил" в AS......
Заранее благодарю за ответ!
__________________
Молчание "ЗОЛОТО" Вот почему его часто не хватает женщинам!!!


Последний раз редактировалось Bol4apa2000; 25.04.2009 в 11:10.
Старый 25.04.2009, 11:28
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от Котяра Посмотреть сообщение
Лучше в цикле
Код AS3:
...
this["myButton"+i].addEventListener(MouseEvent.ROLL_OVER, onOver);
...
Лучше бабблинг, MOUSE_OVER + mouseChildren и единственная подписка, а не этот мрак.

Старый 25.04.2009, 11:44
Obi вне форума Посмотреть профиль Отправить личное сообщение для Obi Найти все сообщения от Obi
  № 9  
Ответить с цитированием
Obi
 
Аватар для Obi

Регистрация: Nov 2007
Адрес: Moscow
Сообщений: 566
e.target — это тот экземпляр, который отослал событие. В данном случае кнопка, или что там у вас. Т.е. при при наведении мыши на любой InteractiveObject, если вы повесили на него слушателя событий 'rollOver' и 'rollOut', visible этого InteractiveObject станет тру или фолс.
Совершенно не важно в каком слое находится ваша кнопка:
Кстати, только сейчас обратил внимание что у вас visible меняется, а не альфа. InteractiveObject'ы c visible = false не рассылают события.
Ну а по поводу вложенности, совершенно не важно чьих родителей дети, которых нам надо убрать, например:
Код AS3:
var s1:Sprite = new Sprite();
this.addChild(s1);
s1.addEventListener(MouseEvent.MOUSE_DOWN, toggleAlpha);
drawMyRect(s1, 0xFF0000, 0, 0, 300, 100);
 
var s2:Sprite = new Sprite();
drawMyRect(s2, 0x00FF00, 100, 50, 100, 50);
s1.addChild(s2);
 
var s3:Sprite = new Sprite();
drawMyRect(s3, 0x0000FF, 130, 70, 50, 20);
s2.addChild(s3);
 
function drawMyRect(target:Sprite, c:uint, x, y, w, h):void {
	target.graphics.lineStyle(1, 0);
	target.graphics.beginFill(c, 1);
	target.graphics.drawRect(x, y, w, h);
	target.graphics.endFill();
}
 
function toggleAlpha(e:Event):void {
	e.target.alpha = Math.abs(e.target.alpha - 1);
}
Заменил over\out на down чтобы пример нагляднее и удобнее работал.



Вы невнятно рассказываете, кстати. Теперь я понял что вам нужно. Вам нужно скрывать _другой_ дисплейобжект.
Можно, например, наследоваться от той-же SimpleButton:
Код AS3:
package {
class MySimpleButton extends SimpleButton {
 
private var _target:DisplayObject;
 
public function MySimpleButton(upState:DisplayObject = null, overState:DisplayObject = null, downState:DisplayObject = null, hitTestState:DisplayObject = null) {
super(upState, overState, downState, hitTestState);
}
 
public function get target():DisplayObject {
return this._target;
}
 
public function set target(value:DisplayObject):void {
this._target = value;
}
}
Тогда ваш кусок прыдыдущий кусок кода должен работать.

Добавлено через 14 минут
Цитата:
Сообщение от Котяра Посмотреть сообщение
Лучше в цикле
Код AS3:
...
this["myButton"+i].addEventListener(MouseEvent.ROLL_OVER, onOver);
...
Господи, да какая разница. Вам было-бы легче, еслиб я вместо 1, 2, 3 написал first, second, third?
Я принцип показывал.
__________________
#flasher@irc.trg.ru:6667


Последний раз редактировалось Obi; 25.04.2009 в 11:54.
Старый 29.04.2009, 18:06
Bol4apa2000 вне форума Посмотреть профиль Отправить личное сообщение для Bol4apa2000 Найти все сообщения от Bol4apa2000
  № 10  
Ответить с цитированием
Bol4apa2000
 
Аватар для Bol4apa2000

Регистрация: Apr 2009
Сообщений: 16
Всем респект и уважуха!!!!!! Тема закрыта, т.к. все заработало!!!!!!!!!!
__________________
Молчание "ЗОЛОТО" Вот почему его часто не хватает женщинам!!!

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

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

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


 


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


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