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

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

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

Регистрация: Aug 2005
Сообщений: 64
По умолчанию Реализация onReleaseOutside

Собственно меня интересует ответ на сабж, как сделать это событие в AS3. Если кто-то уже поднимал этот вопрос киньте ссылку, по поиску ничего не нашел.

Старый 12.10.2006, 13:11
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
onReleaseOutside() EventHandler
----
flash.display.InteractiveObject dispatches event: mouseUp
----
Replaced in the new event model by a mouseUp event after a call to flash.display.InteractiveObject.setCapture().
----
Topic: ActionScript 2.0 Migration.

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

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 328
InteractiveObject.setCapture убрали.
Можно так:
Код:
package {
	import flash.display.Sprite;
	import flash.events.*;

	dynamic public class Test extends Sprite {

		function Test() {
			buttonMode=true;
			addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
		}
		
		private function onMouseDown(e:Event):void {
			stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
		}
		private function onMouseUp(e:Event):void {
			stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp);
			if (e.target==this) {
				trace("onRelease");
			} else {
				trace("onReleaseOutside");
			}
		}
		
	}
}
__________________
Создатель: Бойцовский клуб | TimeZero | Sky2Fly
Я возьму сам.

Старый 12.10.2006, 15:00
artcraft вне форума Посмотреть профиль Отправить личное сообщение для artcraft Посетить домашнюю страницу artcraft Найти все сообщения от artcraft
  № 4  
Ответить с цитированием
artcraft
 
Аватар для artcraft

блогер
Регистрация: Aug 2005
Адрес: www.artcraft.cz
Сообщений: 1,967
Записей в блоге: 6
Отправить сообщение для artcraft с помощью ICQ
MerlinTwi,

на случай если над stage есть объекты с MOUSE_UP, которые будут перекрывать MOUSE_UP сцены
cчитаю нужным немного добавить:

Код:
package {
import flash.display.Sprite;
import flash.events.*;

dynamic public class Test extends Sprite {

	function Test() {
		buttonMode=true;
		addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
	}
		
	private function onMouseDown(e:Event):void {
		stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp, true);
	}
	private function onMouseUp(e:Event):void {
		stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp, true);
		if (e.target==this) {
			trace("onRelease");
		} else {
			trace("onReleaseOutside");
		}
	}
		
}
}
еще могут быть запарки с утягиванием мышки со сцены - тогда листнер onMouseUp не будет удалён и сработает при следующем поднимании мышки над сценой... так что надо повесить на stage листнер для ещё одного события
__________________
Хороший отдых - половина работы.

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

Регистрация: Aug 2005
Сообщений: 64
может я что-то не догоняю, но что это за flash.display.InteractiveObject и как его использовать?

Старый 12.10.2006, 14:21
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 6  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Это базовый класс для DisplayObjectContaiener который в свою очередь базовый для Sprite. ну а Sprite базовый для MovieClip
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 12.10.2006, 14:26
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
MerlinTwi, это в хелпе Flex 2 8)

Старый 12.10.2006, 14:29
NewMan_by вне форума Посмотреть профиль Отправить личное сообщение для NewMan_by Найти все сообщения от NewMan_by
  № 8  
Ответить с цитированием
NewMan_by
 
Аватар для NewMan_by

Регистрация: Aug 2005
Сообщений: 64
MerlinTwi попробовал не работает, то есть когда за пределами клипа не срабатывает событие, хотя вроде должно.

Старый 12.10.2006, 14:33
MerlinTwi вне форума Посмотреть профиль Отправить личное сообщение для MerlinTwi Посетить домашнюю страницу MerlinTwi Найти все сообщения от MerlinTwi
  № 9  
Ответить с цитированием
MerlinTwi
 
Аватар для MerlinTwi

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 328
__etc, старый хелп, пора обновить
см. livedocs.macromedia.com коммент от Jul 25, 2006 at 6:49 PM
__________________
Создатель: Бойцовский клуб | TimeZero | Sky2Fly
Я возьму сам.

Старый 12.10.2006, 14:33
NewMan_by вне форума Посмотреть профиль Отправить личное сообщение для NewMan_by Найти все сообщения от NewMan_by
  № 10  
Ответить с цитированием
NewMan_by
 
Аватар для NewMan_by

Регистрация: Aug 2005
Сообщений: 64
UPD
Работает со stage. В общем со stage фактически как использовать parent, то есть не совсем хороший способ

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

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

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


 


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


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