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

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

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

Регистрация: Oct 2006
Адрес: Москва
Сообщений: 889
По умолчанию как подружить MouseCLICK и MouseDOWN

как я уже писал в предыдущей теме что не могу поладить два события клик и нажатие отпускание,

в одном случае мне нужно мувик начать двигать а в другом сдвинуть относительно курсора, вобщем другое действие)

Код AS3:
mc.addEventListener(MouseEvent.MOUSE_DOWN, OnMapMouseDown);
mc.addEventListener(MouseEvent.MOUSE_UP, StopMove);
mc.addEventListener(MouseEvent.CLICK, StopMove);
Код AS3:
private function OnMapMouseDown(e:MouseEvent):void {
	var timer:Timer = new Timer(500, 1);
	timer.start();
	timer.addEventListener(TimerEvent.TIMER, function(e:TimerEvent):void {
		e.stopPropagation();
		mc.addEventListener(MouseEvent.MOUSE_MOVE, StartMove);
	});
	mc.addEventListener(MouseEvent.MOUSE_UP, MoveAndDraw);
}
 
private function MoveAndDraw(e:Event):void {
	e.stopPropagation();
	// и что то еще далее
}
что делаю не правильно? возможно есть другие подходы?


Последний раз редактировалось random13; 25.06.2009 в 19:41.
Старый 25.06.2009, 19:29
$mival вне форума Посмотреть профиль Отправить личное сообщение для $mival Найти все сообщения от $mival
  № 2  
Ответить с цитированием
$mival
 
Аватар для $mival

Регистрация: Oct 2005
Адрес: Russia, Irkutsk
Сообщений: 742
а где код на клик?
upd: а опять эта тема, автор: выкладывайте все и сразу!
__________________
smival.com


Последний раз редактировалось $mival; 25.06.2009 в 19:31.
Старый 25.06.2009, 19:36
random13 вне форума Посмотреть профиль Отправить личное сообщение для random13 Найти все сообщения от random13
  № 3  
Ответить с цитированием
random13
 
Аватар для random13

Регистрация: Oct 2006
Адрес: Москва
Сообщений: 889
решение нашел вот здесь http://www.actionscript.org/forums/s....php3?t=159670

Код AS3:
import flash.utils.getTimer; 
var lastClick:int; 
box.addEventListener("mouseDown", mdh); 
function mdh (event) {     
box.startDrag();     
lastClick=getTimer(); 
} 
box.addEventListener("mouseUp", muh); 
function muh (event) {    
 box.stopDrag();     
if (lastClick+250>getTimer()) {   
      trace ("click");   
  } }

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

Регистрация: Oct 2005
Адрес: Russia, Irkutsk
Сообщений: 742
а если в ОС в настройках мыши будет выставлено другая задержка на клик (таймаут на клик) и пользователю не подойдет ваш клик в четверть секунды?
что мешало слушать CLICK и оперировать флагами когда что было нажато?
__________________
smival.com

Старый 25.06.2009, 20:05
random13 вне форума Посмотреть профиль Отправить личное сообщение для random13 Найти все сообщения от random13
  № 5  
Ответить с цитированием
random13
 
Аватар для random13

Регистрация: Oct 2006
Адрес: Москва
Сообщений: 889
хорошо если данный метода плох, что посоветуете сделать в данной ситуации?

Добавлено через 18 минут
не совсем понял, можно более конкретно

Старый 25.06.2009, 21:23
Kidd002 вне форума Посмотреть профиль Отправить личное сообщение для Kidd002 Посетить домашнюю страницу Kidd002 Найти все сообщения от Kidd002
  № 6  
Ответить с цитированием
Kidd002

Регистрация: Apr 2004
Адрес: Россия, Москва
Сообщений: 60
Отправить сообщение для Kidd002 с помощью ICQ
Как вариант:
Код AS3:
mc.addEventListener(MouseEvent.MOUSE_DOWN, down);
 
...
 
private function down(e:MouseEvent):void {
	mc.addEventListener(MouseEvent.MOUSE_MOVE, move);
	mc.addEventListener(MouseEvent.MOUSE_UP, up);
}
 
private function move(e:MouseEvent):void {
	mc.removeEventListener(MouseEvent.MOUSE_UP, up);
	mc.removeEventListener(MouseEvent.MOUSE_MOVE, move);
	mc.addEventListener(MouseEvent.MOUSE_UP, up2);
	mc.startDrag();
	trace("Перетаскивание");
 
}
private function up(e:MouseEvent):void {
	mc.removeEventListener(MouseEvent.MOUSE_MOVE, move);
	trace("Клик");
}
private function up2(e:MouseEvent):void {
	mc.stopDrag();
	mc.removeEventListener(MouseEvent.MOUSE_UP, up2);
}
Как-то так

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

Регистрация: Oct 2006
Адрес: Москва
Сообщений: 889
огромное спасибо

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

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

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


 


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


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