![]() |
|
||||||||||
|
|
|
||||||
|
Banned
Регистрация: Oct 2007
Сообщений: 269
|
Вроде бы плагин один, версия одна, а работать может по разному... В одном браузере летает, а в другом дико тормозит...
В проблемном мувике 2 BitmapData, один (2880х2880) копируется на второй (800х800), как с масштабированием, так и без (вырезался только кусочек битмапа, дабы обеспечить движение). Копирование было через draw(). Отлаживал во внешнем проигрывателе, что запускается самим флешем - все идеально. Все летает, никаких тормозов. А вот люди говорили о тормозах. Проверил: 1. Опера - летает. 2. Внешний проигрыватель - летает 3. ФаерФокс - тормоза 4. ИЕ - подтормаживает, но что-то среднее между Оперой и Мозиллой. 5. Опера или Конкьюрер под линухом - отрисовка быстрая, но идет как бы в замедленном режиме, т.е. "дропов" нет, все плавно, но не в реалтайме. Подумалось, что может что-то не так? Ведь есть разные режимы... Слепил: var iii=''; var o=Capabilities; iii+='avHardwareDisable: '+(o.avHardwareDisable?'true':'false')+"\n"; iii+='hasAccessibility: '+(o.hasAccessibility?'true':'false')+"\n"; iii+='hasAudio: '+(o.hasAudio?'true':'false')+"\n"; iii+='hasAudioEncoder: '+(o.hasAudioEncoder?'true':'false')+"\n"; iii+='hasEmbeddedVideo: '+(o.hasEmbeddedVideo?'true':'false')+"\n"; iii+='hasIME: '+(o.hasIME?'true':'false')+"\n"; iii+='hasMP3: '+(o.hasMP3?'true':'false')+"\n"; iii+='hasPrinting: '+(o.hasPrinting?'true':'false')+"\n"; iii+='hasScreenBroadcast: '+(o.hasScreenBroadcast?'true':'false')+"\n"; iii+='hasScreenPlayback: '+(o.hasScreenPlayback?'true':'false')+"\n"; iii+='hasStreamingAudio: '+(o.hasStreamingAudio?'true':'false')+"\n"; iii+='hasStreamingVideo: '+(o.hasStreamingVideo?'true':'false')+"\n"; iii+='hasTLS: '+(o.hasTLS?'true':'false')+"\n"; iii+='hasVideoEncoder: '+(o.hasVideoEncoder?'true':'false')+"\n"; iii+='isDebugger: '+(o.isDebugger?'true':'false')+"\n"; iii+='language: '+o.language+"\n"; iii+='localFileReadDisable: '+(o.localFileReadDisable?'true':'false')+"\n"; iii+='manufacturer: '+o.manufacturer+"\n"; iii+='os: '+o.os+"\n"; iii+='pixelAspectRatio: '+o.pixelAspectRatio.toString()+"\n"; iii+='playerType: '+o.playerType+"\n"; iii+='screenColor: '+o.screenColor+"\n"; iii+='screenDPI: '+o.screenDPI.toString()+"\n"; iii+='screenResolutionX: '+o.screenResolutionX.toString()+"\n"; iii+='screenResolutionY: '+o.screenResolutionY.toString()+"\n"; iii+='serverString: '+o.serverString+"\n"; iii+='version: '+o.version+"\n"; ii.text=iii; Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Самое интересное - это полная идентичность всего в Опере и Фоксе, но заметная разница в производительности! Откуда это? Ведь плагин то один... Когда заменил отрисовку на copyPixels рисовать стало быстрее... Если уменьшить размер битмапа, на котором рисуем, то рисует еще быстрее... Подумалось, что с большими битмапами какие-то ограничения - в цикле отрисовал 16 раз - получил прежнею скорость. И вот тут подумалось о проектировании... Я думал, что проще взять 2 битмапа, положить один на сцену и быстро копировать пиксели, причем сами объекты не трогать. Подумалось, что операция будет происходить на уровне копирования памяти... Увы, так оно тормозит... Тогда я взял большой битмап, вытащил его на сцену и стал двигать/масштабировать по ней. Тормоза исчезли везде! Системе проще крутить большой битмап, при этом используя матрицы трансформаций/сглаживание, нежели тупо скопировать кусок памяти. Это как-то странно для меня. Вопросы: 1.Откуда таки тормоза? (кто виноват?) 2. Как лучше проектировать? (что делать?) |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Фокс просто меньше ресурсов выделяет для флеша.
|
|
|||||
|
Banned
Регистрация: Oct 2007
Сообщений: 269
|
А с остальными как быть?
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Кстати, «слепил» можно было упростить до:
var txt:TextField = new TextField();
txt.autoSize = TextFieldAutoSize.LEFT;
var s:String = '';
var list:XMLList = describeType(Capabilities).accessor;
for each (var item:XML in list) {
s += item.@name+'='+Capabilities[item.@name]+'\n';
}
txt.text = s;
addChild(txt);
screenDPI=72 _internal=0 os=Mac OS 10.4.9 hasAccessibility=false hasMP3=true screenResolutionX=2560 avHardwareDisable=false screenResolutionY=1600 hasEmbeddedVideo=true manufacturer=Adobe Macintosh pixelAspectRatio=1 hasVideoEncoder=true version=MAC 9,0,115,0 hasAudio=true hasTLS=true isDebugger=true screenColor=color hasStreamingVideo=true playerType=StandAlone serverString=A=t&SA=t&SV=t&EV=t&MP3=t&AE=t&VE=t&ACC=f&PR=t&SP=t&SB=f&DEB=t&V=MAC%209%2C0%2C115%2C0&M=Adobe%20Macintosh&R=2560x1600&DP=72&COL=color&AR=1.0&OS=Mac%20OS%2010.4.9&L=en&PT=StandAlone&AVD=f&LFD=f&WD=t&TLS=t hasIME=true language=en hasAudioEncoder=true hasScreenBroadcast=false hasStreamingAudio=true localFileReadDisable=false hasPrinting=true hasScreenPlayback=true prototype=[object Object] |
|
|||||
|
Banned
Регистрация: Oct 2007
Сообщений: 269
|
Хорошо, а как быть с проектированием? Где почитать о том, как лучше реализовывать задачу? Я вот всегда думал, что копирование памяти - самый быстрый способ. Но в данном случае это не так. Флешу проще крутить огромный битмап, даже с матрицами трансформаций. Эх, надеюсь в 10-ке сделают прямой доступ к видеопамяти...
> Кстати, «слепил» можно было упростить Спасибо, буду знать. Я просто из документации скопировал список свойств и на перле сгенерил код, не руками же делать. |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 111
|
Я тоже замечал, что файрфокс в два раза тормазнутее оперы. А можно как нибудь его настроить (желательно чтобы флэшка сама это делала) чтобы он больше ресурсов выделял?
|
|
|||||
|
Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,182
|
Цитата:
P.S. зато опера сама по себе тормознутая во многих отношениях... |
|
|||||
|
Регистрация: Jan 2008
Сообщений: 21
|
Я не знаю когда вы копировали. Но работу с BitmapData надо делать делать с ещё не визуализированными объектами. Всё сделали и только потом addChild(...)
|
|
|||||
|
Регистрация: Feb 2008
Сообщений: 111
|
Цитата:
|
|
|||||
|
UFO
Регистрация: Jul 2007
Сообщений: 173
|
Видимо при кручении большого битмапа используются ресурсы видеокарты, отсюда и тормозов меньше. А с копированием, при постоянной отрисовке одного битмапа в другой, все происходит совсем наоборот, напрягается процессор.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 00:37. |
|
|
« Предыдущая тема | Следующая тема » |
|
|