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

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

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

Регистрация: Apr 2010
Сообщений: 28
По умолчанию Как обработать "пока зажата мышь" и выход курсора за границы флешки

Салюд, комрадэс!
Оптом два ламерских вопроса.
1) Как выполнят действия при ситуации "пока зажата мышь"?
Например, есть стрелка, прокручивающая изображение. При нажатии на неё тупо по onPress добавляем к координатам изображения какое-нибудь число. А как сделать, чтобы прокрутка шла пока мышь зажата?
2) При drag'n'drop'е когда курсор выходит за пределы флешки возникают волшебные явления.
Если, скажем, зажать кнопку мыши, тащить объект, и выйти за границы флешки, то при возвращении во флешку будет считаться, что кнопка мыши зажата - драг н дроп продолжится уже без всяких нажатий, просто по движению мыши. Кто-нибудь в курсе, как этого избежать?

Спасибо за внимание!

Добавлено через 2 минуты
Да, версия флеша - 8. Соответственно AS2

Старый 25.10.2010, 14:17
aksios вне форума Посмотреть профиль Отправить личное сообщение для aksios Найти все сообщения от aksios
  № 2  
Ответить с цитированием
aksios
loading 50%
 
Аватар для aksios

Регистрация: Jun 2005
Адрес: I am where I should be
Сообщений: 3,567
Отправить сообщение для aksios с помощью ICQ
1. Повесить проверку события с частотой, отличной от 1. Намекаю: к примеру ОнЕнтерФрейм.
2. Проблема красиво устранена в АС3, в АС2 лучше повесить условие "убейся" для координаты мыша на границах ролика - поля с запасом, чтобы сработать успело.

Старый 25.10.2010, 14:45
Polimorth вне форума Посмотреть профиль Отправить личное сообщение для Polimorth Найти все сообщения от Polimorth
  № 3  
Ответить с цитированием
Polimorth

Регистрация: Apr 2010
Сообщений: 28
1. А какое событие проверять? Если тот же онПресс, то эффект получается тот же самый. Или, может, я неправильно понимаю как задать частоту проверки события, оличную от 1?
Я пишу в первом кадре:
Код AS1/AS2:
this.onEnterFrame = function() {
	_root.left.onPress = function()  {действия}
}
ЗДесь left - та самая стрелка.

2. Реализовал.

Вообще спасибо большое, использование onEnterFrame позволило сильно упростить и улучшить флешку

Старый 25.10.2010, 14:50
aksios вне форума Посмотреть профиль Отправить личное сообщение для aksios Найти все сообщения от aksios
  № 4  
Ответить с цитированием
aksios
loading 50%
 
Аватар для aksios

Регистрация: Jun 2005
Адрес: I am where I should be
Сообщений: 3,567
Отправить сообщение для aksios с помощью ICQ
Так как у Вас прокрутка реализована? Поставьте в эту функцию в действия - прокрутить на пиксель.

Старый 25.10.2010, 15:03
Polimorth вне форума Посмотреть профиль Отправить личное сообщение для Polimorth Найти все сообщения от Polimorth
  № 5  
Ответить с цитированием
Polimorth

Регистрация: Apr 2010
Сообщений: 28
Ну тык у меня вместо "действия" и стоит изменения координат прокручиваемого объекта на пиксель)

Старый 25.10.2010, 15:05
aksios вне форума Посмотреть профиль Отправить личное сообщение для aksios Найти все сообщения от aksios
  № 6  
Ответить с цитированием
aksios
loading 50%
 
Аватар для aksios

Регистрация: Jun 2005
Адрес: I am where I should be
Сообщений: 3,567
Отправить сообщение для aksios с помощью ICQ
Упс, а где if? Он пресс один раз происходит - до следующего раза.

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

Регистрация: Apr 2010
Сообщений: 28
Значит должно быть что-то в стиле
Код AS1/AS2:
this.onEnterFrame = function() {
	if (_root.left.onPress) 
                   {действия}
}
А какой синтаксис тогда?

Старый 25.10.2010, 15:37
aksios вне форума Посмотреть профиль Отправить личное сообщение для aksios Найти все сообщения от aksios
  № 8  
Ответить с цитированием
aksios
loading 50%
 
Аватар для aksios

Регистрация: Jun 2005
Адрес: I am where I should be
Сообщений: 3,567
Отправить сообщение для aksios с помощью ICQ
Что то вроде:

Код AS1/AS2:
left.onPress=function(){a="ok"};
left.onRelease=function(){a="not ok"};
this.onEnterFrame = function() {
	if (a=="ok") 
                   {scrooll._x++}}

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

Регистрация: Apr 2010
Сообщений: 28
Oh yeap! Спасибо большое, что потратили на нас неразумных столько времени)
Удачи!

Старый 01.11.2010, 16:24
Bred45 вне форума Посмотреть профиль Отправить личное сообщение для Bred45 Найти все сообщения от Bred45
  № 10  
Ответить с цитированием
Bred45

Регистрация: Dec 2008
Сообщений: 87
А еще можно построить клип по границам флешки и отслеживать роллауты с ролловерами. Что-то вроде того

Код AS1/AS2:
var clip:MovieClip = _root.createEmptyMovieClip("clip", 1000);
clip.lineStyle(0,0,0);
clip.beginFill(0,0);
clip.moveTo(0,0);
var xMax:Number = Stage.width, yMax:Number = Stage.height;
clip.lineTo(0, yMax), clip.lineTo(xMax, yMax), clip.lineTo(xMax, 0), clip.lineTo(0);
clip.endFill();
clip.useHandCursor = false;
clip.onRollOut = function():Void  {
	trace("ушел");
};
clip.onRollOver = function():Void  {
	trace("вернулся");
};

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

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

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


 


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


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