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

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

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

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
По умолчанию Параметр в addFrameScript

Хочу остановить и убрать видимость.
Такой вариант не нравится.
Код AS3:
mc.addFrameScript(0, function(mc:MovieClip):Function { return function():void { mc.stop(); mc.visible = false }}(mc) );
Ещё есть что?


Последний раз редактировалось Psycho Tiger; 13.11.2009 в 20:26.
Старый 13.11.2009, 20:33
Felicast вне форума Посмотреть профиль Отправить личное сообщение для Felicast Найти все сообщения от Felicast
  № 2  
Ответить с цитированием
Felicast
 
Аватар для Felicast

Регистрация: Feb 2008
Адрес: Череповец
Сообщений: 623
Отправить сообщение для Felicast с помощью ICQ
Код AS3:
mc.addEventListener(Event.ENTER_FRAME, enterFrameListener);
function enterFrameListener(event:Event):void
{
	var mc:MovieClip = event.target as MovieClip;
	if (mc && (mc.currentFrame == 0))
	{
		mc.stop();
		mc.visible = false;
	}
}
__________________
я могу стать всем, если только захочу

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

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
А какой вариант лучше? И чем?
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 13.11.2009, 22:33
SamFR вне форума Посмотреть профиль Отправить личное сообщение для SamFR Посетить домашнюю страницу SamFR Найти все сообщения от SamFR
  № 4  
Ответить с цитированием
SamFR

Регистрация: Mar 2008
Адрес: Ростов-на-Дону
Сообщений: 354
Мне думается, что лучше всё-же второй вариант. Привычнее как-то)
Единственно что, условие (mc.currentFrame == 0) нужно заменить на (mc.currentFrame == 1), т.к. отсчёт кадров начинается с 1, а не с 0. И ещё в конце обработчика можно написать mc.removeEventListener(Event.ENTER_FRAME, enterFrameListener), чтобы он зря не отрабатывал каждый кадр. При условии, конечно, что скрыть нужно единожды.

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

Регистрация: Feb 2008
Адрес: Череповец
Сообщений: 623
Отправить сообщение для Felicast с помощью ICQ
первый тоже имеет право на жизнь, но я бы вынес функцию отдельно.
Цитата:
Единственно что, условие (mc.currentFrame == 0) нужно заменить на (mc.currentFrame == 1), т.к. отсчёт кадров начинается с 1, а не с 0.
ага. я просто очень редко использую MovieClip, поэтому не помню таких тонкостей
__________________
я могу стать всем, если только захочу

Старый 14.11.2009, 19:11
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 6  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
Вы издиваетесь?)
Я же имею ввиду не вообще "как это можно сделать", а вменяемые варианты

TanaTiX - мой вариант лучше, быстрее и правильнее. Когда нужно нажать на какую нибудь кнопку мышкой (у которого mouseEnabled=true) - мы ведь подписываем объект на MouseEvent.CLICK, а не stage, где в последствии через getObjectsUnderPoint определяем список того, что под нами и циклом сравниваем элемент с собой?

SamFR, привычно то привычно, но ведь мы наследуемся от шейпа, от спрайта, от эвент диспатчера наконец. Можно ведь сразу от мувиклипа, тоже привычней)

Felicast, за помощь спасибо, но я бы сказал, твой вариант права на жизнь не имеет)

Старый 14.11.2009, 20:28
SamFR вне форума Посмотреть профиль Отправить личное сообщение для SamFR Посетить домашнюю страницу SamFR Найти все сообщения от SamFR
  № 7  
Ответить с цитированием
SamFR

Регистрация: Mar 2008
Адрес: Ростов-на-Дону
Сообщений: 354
Ну не знаю, не знаю... Во-первых, от MovieClip-а я наследовать никого не призываю А насчёт правильнее... не уверен. Просто, наверное, не очень доверяю недокументированным возможностям, и использую их только при крайней необходимости. Мало ли, что адобовцы к следующей версии плеера придумают

Насчёт скорости – да, наверное, addFrameScript() побыстрее будет, но так ли уж в данном случае важна разница в пару миллисекунд?

Добавлено через 5 минут
Кстати, больше вариантов, как вменяемых, так и невменяемых, в голову что-то не приходит...

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

Регистрация: Feb 2008
Адрес: Череповец
Сообщений: 623
Отправить сообщение для Felicast с помощью ICQ
Цитата:
Я же имею ввиду не вообще "как это можно сделать", а вменяемые варианты
вы спросили
Цитата:
Ещё есть что?
вам ответили.
Цитата:
Felicast, за помощь спасибо, но я бы сказал, твой вариант права на жизнь не имеет)
аргументируйте пожалуйста
__________________
я могу стать всем, если только захочу

Старый 14.11.2009, 23:07
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 9  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
Зачем вешать обработчик, который будет вызываться каждый кадр, который возможно будет вызывать неудобства (добавить/удалить листенер при уничтожении объекта), если можно добавить код к кадру?

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

Регистрация: Mar 2008
Адрес: Ростов-на-Дону
Сообщений: 354
Ну не обязательно он должен отрабатывать каждый кадр. Если больше не планируется возвращение к первому кадру, либо больше не нужно в этом кадре мувик скрывать, то в теле обработчика можно сразу же отписаться от энтерфрейма. Тогда он сработает только один раз.

Я не говорю, что навешивание обработчика – самый красивый и правильный метод, просто больше документированных возможностей отловить наступление кадра я не знаю. А к недокументированным своё отношение я уже высказал выше.

P.S. Кстати, мы ведь не знаем, как работает addFrameScript()... Вполне может оказаться так, что он делает то же самое Ведь MovieClip, всё-таки, является наследником спрайта, и было бы логичным реализовать мувиклиповские методы, основываясь на базовой функциональности.


Последний раз редактировалось SamFR; 15.11.2009 в 01:27.
Создать новую тему Ответ Часовой пояс GMT +4, время: 19:47.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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