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

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

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

Регистрация: Jul 2007
Сообщений: 173
По умолчанию выдернуть всех чилдов из эмбед мувиклипа

Дано:
Мувик который цепляем в проект как [ Embed ( .... Создаем и кладем на сцену.

Задача:
В цикле выдернуть все вложенные в него мувики, из всех кадров. Именно в цикле и именно из всех кадров, но за одно вхождение в кадр.

Примерное решение:
от iNils:
1. раздебажить флешку внутри себя выдернуть необходимые данные. (это долго, но можно как вариант)
2. раздебажить все swf еще на этапе сборки проекта и необходимые данные засунуть в флешку (это не оптимально)

Я пока думаю сделать просто предзагрузку, в которой пройтись по всем таким мувикам и надергать необходимую информацию (но это отнимет время)

Кто подскажет еще варианты?


Последний раз редактировалось ALiEN_; 15.06.2009 в 17:37. Причина: более конкретно описал задачу
Старый 15.06.2009, 18:50
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 2  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
такое подозрение, что за одно вхождение в кадр никак не узнать, что лежит в других кадрах, только если 'проехаться' по линейке в реальном времени:
Код AS3:
private function enterFrameHandler(evnt:Event):void 
{
	trace( "_testMC.currentFrame : " + _testMC.currentFrame );
	for (var i:int = 0; i < _testMC.numChildren; i++) 
	{
		var child:DisplayObject = _testMC.getChildAt(i);
		trace( "child : " + child );
	}
	if (_testMC.currentFrame == _testMC.totalFrames)
	{
		_testMC.removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
	}
	_testMC.nextFrame();
}

Старый 15.06.2009, 21:09
ALiEN_ вне форума Посмотреть профиль Отправить личное сообщение для ALiEN_ Посетить домашнюю страницу ALiEN_ Найти все сообщения от ALiEN_
  № 3  
Ответить с цитированием
ALiEN_
UFO
 
Аватар для ALiEN_

Регистрация: Jul 2007
Сообщений: 173
Да, как вариант, я и имел ввиду этот способ под предзагрузкой.
Только что с Нилсом обнаружили, за одно вхождение в кадр можно спокойно узнать, если компилировать в windows, если под маком получается глюк. Собственно я бился головой об стену под маком:
Делаем переходы gotoAndStop в цикле на все кадры основного ролика. В нем в определенные моменты появляются чилды numChildren = 2 или 3 (все как положено), но getChildAt (2) например возвращает пустую ссылку. Видимо баг плеера под макинтошем и надо искать пути обхода.


Последний раз редактировалось ALiEN_; 15.06.2009 в 21:11.
Старый 15.06.2009, 21:23
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 4  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
сомнительно, что маковский плеер так сильно отличается
к слову, у меня и в винде getChildAt дает null , при том что numChildren показывает верно
(Win XP SP3, плеер 10,0,22,87, flex_sdk_3.4)


Последний раз редактировалось silin; 15.06.2009 в 22:08.
Старый 15.06.2009, 21:48
ALiEN_ вне форума Посмотреть профиль Отправить личное сообщение для ALiEN_ Посетить домашнюю страницу ALiEN_ Найти все сообщения от ALiEN_
  № 5  
Ответить с цитированием
ALiEN_
UFO
 
Аватар для ALiEN_

Регистрация: Jul 2007
Сообщений: 173
хм ... странно как, вот ссылка на готовый проект.

Соберем статистику, у меня mac os, версия плеера 10.0.22.87, FDT сборка под Flex SDK 3.2. numChildren показывает верно, getChildAt возвращает null или undefined, иногда Object, но не DisplayObject и не MovieClip.

UPD:
Очень забавно, если в конструкторе цикл убрать и заменить на вызов этой функции, все встает на свои места (только время надо подобрать) У меня с единицей, все мувики кроме одного находятся, если поставить 10, то вообще все назодятся. Такое впечатление, что мувики тупо не успевают инициализироваться, где то телега вперед лошади бежит )))
Код AS3:
private function step ():void
{
 
	goto ++ ;
 
	if ( goto < 30 )
	{
 
		setTimeout ( step, 1);
 
	}
 
	_massAddArrayStop (_slideB, goto);
 
	_allGotoAndStop (goto);
 
}


Последний раз редактировалось ALiEN_; 15.06.2009 в 22:01.
Старый 15.06.2009, 22:07
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 6  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
А что будете делать с клипами, которые создаются динамически? :/
__________________
Hell is the possibility of sanity

Старый 15.06.2009, 22:14
ALiEN_ вне форума Посмотреть профиль Отправить личное сообщение для ALiEN_ Посетить домашнюю страницу ALiEN_ Найти все сообщения от ALiEN_
  № 7  
Ответить с цитированием
ALiEN_
UFO
 
Аватар для ALiEN_

Регистрация: Jul 2007
Сообщений: 173
А что с ними? С ними вроде вообще проблем нет. Или в чем конкретно вопрос?

Старый 15.06.2009, 22:32
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 8  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
имо, сомнительный выход с таймаутовым шаганием по фреймам, не дешевле/надежнее по enterFrame пустить? к слову, его ведь и задрать повыше наверное можно на это время

Старый 15.06.2009, 22:48
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 9  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Цитата:
Сообщение от ALiEN_ Посмотреть сообщение
А что с ними? С ними вроде вообще проблем нет. Или в чем конкретно вопрос?
код в кадре:
Код AS3:
if (Math.random() > .5) addChild(new Sprite());
__________________
Hell is the possibility of sanity

Старый 16.06.2009, 17:29
ALiEN_ вне форума Посмотреть профиль Отправить личное сообщение для ALiEN_ Посетить домашнюю страницу ALiEN_ Найти все сообщения от ALiEN_
  № 10  
Ответить с цитированием
ALiEN_
UFO
 
Аватар для ALiEN_

Регистрация: Jul 2007
Сообщений: 173
Сегодня всю ночь просидел с этим багом. Вобщем пока не удалось найти нормального решения ...
Определил, что если повесить слушателя ADDED на мувик, то в момент события, на таймлайне мувика ЕСТЬ ВСЕ вложенные мувики и они не null, далее пробегаясь по ним, вешал слушателей ADDED уже на них, но здесь ситуация получалась немного хуже. Ситуация примерно такая, как если бы мы сначала сделали addChild ( movie ), а потом на movie повесили слушателя ADDED (в итоге он все равно срабатывает, но в target лежит какая то ерунда, вроде Shape)
Очевидно это бага плеера, надо поискать репорты или зарепортить с примером...

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

Теги
embed , frame , gotoandstop , movieclip
Опции темы
Опции просмотра

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

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


 


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


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