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

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

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

блогер
Регистрация: Oct 2009
Адрес: кочевник. Киев
Сообщений: 453
Записей в блоге: 5
По умолчанию длинная анимация copyPixels

Всем приветы!
есть у меня два мувиклипа с видяшкой (flv немаленькие) внутрях. Когда проигрывается один, другой пригрывается в обратную сторону. Пробовал через ENTER_FRAME проигрывать назад, так:
Код AS3:
	if( myMc.currentFrame > 1 )
	{
		myMc.gotoAndStop( myMc.currentFrame - 1 );
	} else
	{		
		myMc.gotoAndStop( 1 );
		removeEventListener(Event.ENTER_FRAME, onEnterFrame);
	}
при таком раскладе жутко тормозит ентерфрейм и процесс происходит ооочень медленно
попробывал TweenMax - стало приятней хоть и с рывками но быстро
и таки решил делать черех copyPixels- создать битмапдату в которую, пробегая предварительно по всем кадрам видяшки, "врисовать" все кадры по порядку, а потом их брать из нее сдвигаясь, зная ширину одного "кадра" . остановило то что битмадата имеет ограничения в размерах, следовательно все 280 кадров я не вмещу туда

посоветуйте плиз какие может есть еще решенеия

спасибо
__________________
мира и гармонии

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
1) "Врисовывать" не только в длину, но и в высоту.
2) Использовать несколько Битмап :о)
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 05.10.2010, 14:06
VVall вне форума Посмотреть профиль Отправить личное сообщение для VVall Найти все сообщения от VVall
  № 3  
Ответить с цитированием
VVall

Регистрация: Feb 2009
Сообщений: 1,195
Вы для начала посчитайте, сколько памяти это займёт - ширина*высота*4*количества кадров.

Старый 05.10.2010, 14:29
3p.station вне форума Посмотреть профиль Отправить личное сообщение для 3p.station Найти все сообщения от 3p.station
  № 4  
Ответить с цитированием
3p.station
 
Аватар для 3p.station

блогер
Регистрация: Oct 2009
Адрес: кочевник. Киев
Сообщений: 453
Записей в блоге: 5
йяй
не знаю как посчитать но чую, что
много занимать будет это (как у меня) 280 кадров 300х600 и таких у меня 3 мувика

сделать битмапдату на первые 10 кадров, потом ее удалить сделать следующую еще на 10.... - так пойдет ?
__________________
мира и гармонии

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

Регистрация: Feb 2009
Сообщений: 1,195
Я же написал выше, как посчитать. 300*600*4*280=примерно 192 мегабайта. Это много, у людей были проблемы уже со 140 мегабайтами, и я где-то встречал утверждение, что лучше ограничиться 70 мегабайтами (не знаю, насколько актуально).

Перевыделение больших объёмов памяти тоже может привести к проблемам. Но не глядя сказать сложно, надо пробовать.

Старый 05.10.2010, 15:27
3p.station вне форума Посмотреть профиль Отправить личное сообщение для 3p.station Найти все сообщения от 3p.station
  № 6  
Ответить с цитированием
3p.station
 
Аватар для 3p.station

блогер
Регистрация: Oct 2009
Адрес: кочевник. Киев
Сообщений: 453
Записей в блоге: 5
да уж, как это я не "видел" формулу , сорри

ну значит буду просто по другому планировать проект !

спасибо!
__________________
мира и гармонии

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Сделайте 6 видео. 3 с прямым порядком кадров, 3 с обратным (изначально, без попыток провернуть это в реалтайме). Это потребует меньше памяти и ресурсов при воспроизведении.

Старый 05.10.2010, 17:50
3p.station вне форума Посмотреть профиль Отправить личное сообщение для 3p.station Найти все сообщения от 3p.station
  № 8  
Ответить с цитированием
3p.station
 
Аватар для 3p.station

блогер
Регистрация: Oct 2009
Адрес: кочевник. Киев
Сообщений: 453
Записей в блоге: 5
идея хорошая и полезная, спасибо!
у меня тогда правда будет флешка 10мб весить ( :

Добавлено через 2 часа 6 минут
и все же, не понимаю, почему так начинает жутко тормозить ЕнтерФрейм, разве когда я делаю просто play() , по другому идет процесс? Если да, может можно как-то сделать и с покадровой прокруткой назад...

Добавлено через 2 часа 12 минут
fps падает до 4 - 9 с 40 ...
__________________
мира и гармонии

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
по другому идет процесс?
По-другому. Расчет ключевых кадров еще никто не отменял.

Старый 05.10.2010, 21:20
3p.station вне форума Посмотреть профиль Отправить личное сообщение для 3p.station Найти все сообщения от 3p.station
  № 10  
Ответить с цитированием
3p.station
 
Аватар для 3p.station

блогер
Регистрация: Oct 2009
Адрес: кочевник. Киев
Сообщений: 453
Записей в блоге: 5
вообщем решился вопрос с помощью таки copyPixels таймер
и
Код AS3:
private var framesOfAnimation:Vector.<BitmapData> = new Vector.<BitmapData>;
и копированием через 5 кадр

тока теперь очень странная тема получилась -
когда весь массив заполнен монстер дебаггер показывает 60 метров
потом я беру из массива -
Код AS3:
var bitmpdata:BitmapData = framesOfAnimation.shift();
таким образом
и когда дохожу до конца - монстер показывает 59 метров
это как так может быть??

(если кому интересно подробно как решил вопрос могу распиать )
__________________
мира и гармонии

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

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

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


 


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


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