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

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

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

Регистрация: May 2009
Адрес: Санкт-Петербург
Сообщений: 79
По умолчанию Проверить одинаковые ли кадры MovieClip или нет

Нужно проверить является ли дочерний элемент во N кадре мувиклипа таким же как и в N-1 кадре

Код AS3:
var lastChild:DisplayObject=mc.getChildAt(0);
mc.gotoAndStop(mc.currentFrame+1);
var newChild:DisplayObject=mc.getChildAt(0);
trace(lastChild==newChild);//всегда выводит тру

В данном случае во всех кадрах по одному чилду. Каждый чилд-обычный битмап. Почему трейс выводит тру всегда?

Старый 13.04.2013, 15:31
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 2  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
bitmap == bitmap
Вот если бы у вас была обертка типа new BitmapClass1() - тогда другое дело
__________________
Марк Tween

Старый 13.04.2013, 15:47
Maestro13 вне форума Посмотреть профиль Отправить личное сообщение для Maestro13 Найти все сообщения от Maestro13
  № 3  
Ответить с цитированием
Maestro13

Регистрация: May 2009
Адрес: Санкт-Петербург
Сообщений: 79
Ну по сути в случае разных дочерних элементов lastChild и newChild должныв ссылаться на разные области памяти. А тут такое ощущение будто после смены кадра чилд0 мувиклипа ссылается на туже область памяти, что и в предыдущем кадре, отсюда и получается что lastChild все всремя тот же самый что и newChild. Как мне тогда в такой ситуации проверить одинаковые чилды или нет?

Добавлено через 1 минуту
Проверять все их свойства остается?

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Потому что кадры - это понятие относительное. Только для аниматоров. А для программы, есть объект MovieClip, который является контейнером. В нем есть дочерний объект (картинка), на нулевом уровне. И пофиг с какого кадра это вызывается. Пока эта картинка лежит внутри КОНТЕЙНЕРА на нулевом уровне метод getChildAt(0) всегда будет возвращать ссылку на нее. Забудьте про кадры.

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

Регистрация: May 2009
Адрес: Санкт-Петербург
Сообщений: 79
Что тогда с точки зрения контейнера происходит, когда мы переходим с 1 кадра на второй, если в этих двух кадрах разные картинки?

Добавлено через 4 минуты
Получается остается создавать битмапдаты для каждой картинки и попиксельно сравнивать

Старый 13.04.2013, 16:12
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 6  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
я не понимаю зачем это вообще нужно?
Цитата:
Что тогда с точки зрения контейнера происходит, когда мы переходим с 1 кадра на второй, если в этих двух кадрах разные картинки?
Одна картинка удаляется, и добавляется другая. В кадре просто имеется ссылка на определенно изображение. Если в разные кадры добавлена одна и та же картинка, то и ссылка на нее во всех кадрах будет одна. Это же логично. Зачем заваливать память кучей копий

Старый 13.04.2013, 17:35
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 7  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Цитата:
Сообщение от in4core Посмотреть сообщение
bitmap == bitmap
К чему ты это написал? Автор сравнивает ссылки на экземпляр(ы).

По теме. Если кинуть на таймлайн испытуемого мувика битмапы из библиотеки, скажем, по одной в каждый кадр, то выяснится, что это будут вовсе не разные Bitmap, а один и тот же Shape, залитый текстурой (есть даже целые "Методики зарисовки сцен одним Шейпом"). Текстура в каждом кадре будет разной, а вот шейп — один. Поэтому и ссылки с любого кадра ведут на один объект — вот откуда наш true.
Стоит зайти в библиотеку и каждой битмапе тупо поставить галочку Export for ActionScript, как наши объекты в каждом кадре окажутся таки экземплярами Bitmap, и таки да — разными.

Добавлено через 11 минут
И да — nextFrame() удобней.
__________________
Поймай яблоко 2!

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

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

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


 


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


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