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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 26.07.2010, 18:43
ZergMaster вне форума Посмотреть профиль Отправить личное сообщение для ZergMaster Найти все сообщения от ZergMaster
  № 4  
Ответить с цитированием
ZergMaster
 
Аватар для ZergMaster

Регистрация: May 2008
Адрес: Питер
Сообщений: 385
Отправить сообщение для ZergMaster с помощью ICQ Отправить сообщение для ZergMaster с помощью Skype™
Возможно, мышка попадает на С, или на А, тем самым теряется фокус с B и срабатывает событие MOUSE_OUT
вообще чтобы что-то сказать точно, лучше видеть весь код.
А так есть пара вариантов обойти проблему:
1) поиграть с расположением А и С. То есть, чтобы их координаты были не строго равны координатам мышки, а, к примеру,
Код AS3:
C.x=stage.mouseX-5;
2) либо создать функцию, которая будет проверять через определенные промежутки времени положение мышки и задать область, в которой будет видна С. Примерно так:

Код AS3:
var eventTimer:Timer = new Timer(200); //задаем таймер в миллисекундах (1000мл = 1 сек.)
var mx:Number;
var my:Number;
eventTimer.addEventListener(TimerEvent.TIMER, Cvisible);
eventTimer.start();
 
private function Cvisible(e:TimerEvent):void
{
    mx = stage.mouseX;
    my = stage.mouseY;
 
//задаем область, а которой будет видно С. Так как эта облать напрямую зависит от В, 
//то ориентируемся на него. Будет работать правильно, только если то, что находится 
//внутри символа В имеет координаты х=0, у=0;
 
    if((mx>B.x)&&(mx<(B.x+B.width))&&(my>B.y)&&(my<(B.y+B.height))) 
    {
        C.visible = true; //тут адекватнее использовать свойство visible, а не alpha
    } else {
                 C.visible = false;
             }
    e.updateAfterEvent(); //Эту строчку не забыть, без неё таймер не будет обновляться.
}
но вообще лучше первый вариант)


Последний раз редактировалось ZergMaster; 26.07.2010 в 18:46.
Создать новую тему   Часовой пояс GMT +4, время: 10:00.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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