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

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

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

блогер
Регистрация: Sep 2009
Сообщений: 309
Записей в блоге: 4
Отправить сообщение для AzagThoth с помощью ICQ
Cool События мыши и Button

Здравствуйте! Занимаюсь по книжке Гурского и сталкнулся с интересным вопросом...
В общем код такой:
Код AS1/AS2:
Button.prototype.onMouseDown=function(){
	this._xscale=this._yscale+=1;
}
 
function search(level:MovieClip):Void{
	for(var i in level){
		if(level[i] instanceof Button){
			Mouse.addListener(level[i]);
		}
		else if(level[i] instanceof MovieClip){
			search(level[i]);
		}
	}
}
 
search(_root);
Проблема в том, что растут все кнопки... Впрочем почему это происходит - мне ясно... Однако неясно как этого избежать. Хочу чтобы росла только та кнопка над которой я нажал на кнопку мыши. Метода hitTest() что есть у мувиклипа у кнопки я не обнаруживаю.

В общем если кто знает - подскажите.

Старый 02.11.2009, 01:54
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 2  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Вешайте обработчик на определенную кнопку, а не на прототип.

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

блогер
Регистрация: Sep 2009
Сообщений: 309
Записей в блоге: 4
Отправить сообщение для AzagThoth с помощью ICQ
Я не хочу на определённую кнопку вешать. Поясню - скажем у меня будет стопяцот кнопок с разными именами - некоторые вложенные в клипы в которых вложены другие клипы куда тоже могут быть вложены кнопки и называться кнопки мог как заблагарассудится. Так вот я хочу чтобы росла та кнопка на которую я жму, причём сделать это именно через Листенер мыши и ни как иначе. Скажем я определяю это как неплохую практику в обучении. Никакие иные варианты мне не подходят. Значит вопрос в том существует ли метод или свойство который может определить при его вызове(а вызвать его должно быть можно в любой момент) или обращении к нему(если это свойство) над кнопкой или нет в данный миг находится курсор мыши. Если такого нет, то вопрос в том как его можно сэмулировать, если это вообще вообще возможно.

ЗЫ: Понимаю, что вопрос дурацкий и на практике это навряд ли применимо, но мне жизненно важно знать как это замутить и именно через мышиный листенер!

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

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Button.onPress

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

блогер
Регистрация: Sep 2009
Сообщений: 309
Записей в блоге: 4
Отправить сообщение для AzagThoth с помощью ICQ
Гы) Я ж написал, что именно через листенер мыши хочу)) Событийный метод кнопки мне не нравится))

Добавлено через 10 часов 1 минуту
Вот так!

Код AS1/AS2:
Button.prototype.onMouseDown=function(){
	if(this._xmouse>-this._width/2 & this._ymouse>-this._width/2 & this._xmouse<this._width/2 & this._ymouse<this._height/2){
		this._xscale=this._yscale+=1;
	}
}
 
function search(level:MovieClip):Void{
	for(var i in level){
		if(level[i] instanceof Button){
			Mouse.addListener(level[i]);
		}
		else if(level[i] instanceof MovieClip){
			search(level[i]);
		}
	}
}
 
search(_root);


Последний раз редактировалось AzagThoth; 02.11.2009 в 05:01.
Создать новую тему Ответ Часовой пояс GMT +4, время: 18:25.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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