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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.02.2008, 04:28
LinuxVideo вне форума Посмотреть профиль Найти все сообщения от LinuxVideo
  № 1  
Ответить с цитированием
LinuxVideo
Banned
[+4 11.12.07]
[+4 18.03.08]

Регистрация: 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;
Результаты:

Цитата:
Опера:

avHardwareDisable: false
hasAccessibility: false
hasAudio: true
hasAudioEncoder: true
hasEmbeddedVideo: true
hasIME: true
hasMP3: true
hasPrinting: true
hasScreenBroadcast: false
hasScreenPlayback: true
hasStreamingAudio: true
hasStreamingVideo: true
hasTLS: true
hasVideoEncoder: true
isDebugger: false
language: ru
localFileReadDisable: false
manufacturer: Adobe Windows
os: Windows XP
pixelAspectRatio: 1
playerType: PlugIn
screenColor: color
screenDPI: 72
screenResolutionX: 1024
screenResolutionY: 768
serverString: A=t&SA=t&SV=t&EV=t&MP3=t&AE=t&VE=t&ACC=f&PR=t&SP=t&SB=f&DEB=f&V=WIN%209%2C0%2C47%2C0&M=Adobe%20Windows&R=1024x768&DP=72&COL=color&AR=1.0&OS=Windows%20 XP&L=ru&IME=t&PT=PlugIn&AVD=f&LFD=f&WD=f&TLS=t
version: WIN 9,0,47,0

Цитата:
Фокс:

avHardwareDisable: false
hasAccessibility: false
hasAudio: true
hasAudioEncoder: true
hasEmbeddedVideo: true
hasIME: true
hasMP3: true
hasPrinting: true
hasScreenBroadcast: false
hasScreenPlayback: true
hasStreamingAudio: true
hasStreamingVideo: true
hasTLS: true
hasVideoEncoder: true
isDebugger: false
language: ru
localFileReadDisable: false
manufacturer: Adobe Windows
os: Windows XP
pixelAspectRatio: 1
playerType: PlugIn
screenColor: color
screenDPI: 72
screenResolutionX: 1024
screenResolutionY: 768
serverString: A=t&SA=t&SV=t&EV=t&MP3=t&AE=t&VE=t&ACC=f&PR=t&SP=t&SB=f&DEB=f&V=WIN%209%2C0%2C47%2C0&M=Adobe%20Windows&R=1024x768&DP=72&COL=color&AR=1.0&OS=Windows%20 XP&L=ru&IME=t&PT=PlugIn&AVD=f&LFD=f&WD=f&TLS=t
version: WIN 9,0,47,0
Цитата:
ИЕ:

avHardwareDisable: false
hasAccessibility: true
hasAudio: true
hasAudioEncoder: true
hasEmbeddedVideo: true
hasIME: true
hasMP3: true
hasPrinting: true
hasScreenBroadcast: false
hasScreenPlayback: true
hasStreamingAudio: true
hasStreamingVideo: true
hasTLS: true
hasVideoEncoder: true
isDebugger: true
language: ru
localFileReadDisable: false
manufacturer: Adobe Windows
os: Windows XP
pixelAspectRatio: 1
playerType: ActiveX
screenColor: color
screenDPI: 72
screenResolutionX: 1024
screenResolutionY: 768
serverString: A=t&SA=t&SV=t&EV=t&MP3=t&AE=t&VE=t&ACC=t&PR=t&SP=t&SB=f&DEB=t&V=WIN%209%2C0%2C45%2C0&M=Adobe%20Windows&R=1024x768&DP=72&COL=color&AR=1.0&OS=Windows%20 XP&L=ru&IME=t&PT=ActiveX&AVD=f&LFD=f&WD=f&TLS=t
version: WIN 9,0,45,0
Цитата:
Плеер:

avHardwareDisable: false
hasAccessibility: false
hasAudio: true
hasAudioEncoder: true
hasEmbeddedVideo: true
hasIME: true
hasMP3: true
hasPrinting: true
hasScreenBroadcast: false
hasScreenPlayback: true
hasStreamingAudio: true
hasStreamingVideo: true
hasTLS: true
hasVideoEncoder: true
isDebugger: true
language: ru
localFileReadDisable: false
manufacturer: Adobe Windows
os: Windows XP
pixelAspectRatio: 1
playerType: External
screenColor: color
screenDPI: 72
screenResolutionX: 1024
screenResolutionY: 768
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=WIN%209%2C0%2C45%2C0&M=Adobe%20Windows&R=1024x768&DP=72&COL=color&AR=1.0&OS=Windows%20 XP&L=ru&IME=t&PT=External&AVD=f&LFD=f&WD=f&TLS=t
version: WIN 9,0,45,0

Цитата:
Фокс под линуксом

avHardwareDisable: false
hasAccessibility: false
hasAudio: true
hasAudioEncoder: true
hasEmbeddedVideo: true
hasIME: false
hasMP3: true
hasPrinting: true
hasScreenBroadcast: false
hasScreenPlayback: true
hasStreamingAudio: true
hasStreamingVideo: true
hasTLS: false
hasVideoEncoder: true
isDebugger: false
language: ru
localFileReadDisable: false
manufacturer: Adobe Linux
os: Linux 2.6.13-15-default
pixelAspectRatio: 0
playerType: PlugIn
screenColor: color
screenDPI: 90
screenResolutionX: 1024
screenResolutionY: 768
serverString: A=t&SA=t&SV=t&EV=t&MP3=t&AE=t&VE=t&ACC=f&PR=t&SP=t&SB=f&DEB=f&V=LNX%209%2C0%2C31%2C0&M=Adobe%20Linux&R=1024x768&DP=90&COL=color&AR=1,001153&OS=Linux%2 02.6.13-15-default&L=ru&PT=PlugIn&AVD=f&LFD=f&WD=t&TLS=f
version: LNX 9,0,31,0

Самое интересное - это полная идентичность всего в Опере и Фоксе, но заметная разница в производительности! Откуда это? Ведь плагин то один...

Когда заменил отрисовку на copyPixels рисовать стало быстрее...
Если уменьшить размер битмапа, на котором рисуем, то рисует еще быстрее...
Подумалось, что с большими битмапами какие-то ограничения - в цикле отрисовал 16 раз - получил прежнею скорость.

И вот тут подумалось о проектировании...
Я думал, что проще взять 2 битмапа, положить один на сцену и быстро копировать пиксели, причем сами объекты не трогать. Подумалось, что операция будет происходить на уровне копирования памяти... Увы, так оно тормозит...
Тогда я взял большой битмап, вытащил его на сцену и стал двигать/масштабировать по ней. Тормоза исчезли везде! Системе проще крутить большой битмап, при этом используя матрицы трансформаций/сглаживание, нежели тупо скопировать кусок памяти. Это как-то странно для меня.

Вопросы:
1.Откуда таки тормоза? (кто виноват?)
2. Как лучше проектировать? (что делать?)

Старый 16.02.2008, 11:25
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Фокс просто меньше ресурсов выделяет для флеша.

Старый 16.02.2008, 12:46
LinuxVideo вне форума Посмотреть профиль Найти все сообщения от LinuxVideo
  № 3  
Ответить с цитированием
LinuxVideo
Banned
[+4 11.12.07]
[+4 18.03.08]

Регистрация: Oct 2007
Сообщений: 269
А с остальными как быть?

Старый 16.02.2008, 16:49
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: 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);
Вот листинг Standalone в Mac OS X 10.4.11 (версию OS оно явно перевирает):
Код:
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]
Вопрос насчет остальных не понял. Лучше всего тестить ролики в самом медленном браузере, тобишь Firefox, хотя откровенной тормознутости я не видел.

Старый 16.02.2008, 17:24
LinuxVideo вне форума Посмотреть профиль Найти все сообщения от LinuxVideo
  № 5  
Ответить с цитированием
LinuxVideo
Banned
[+4 11.12.07]
[+4 18.03.08]

Регистрация: Oct 2007
Сообщений: 269
Хорошо, а как быть с проектированием? Где почитать о том, как лучше реализовывать задачу? Я вот всегда думал, что копирование памяти - самый быстрый способ. Но в данном случае это не так. Флешу проще крутить огромный битмап, даже с матрицами трансформаций. Эх, надеюсь в 10-ке сделают прямой доступ к видеопамяти...


> Кстати, «слепил» можно было упростить

Спасибо, буду знать. Я просто из документации скопировал список свойств и на перле сгенерил код, не руками же делать.

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

Регистрация: Feb 2008
Сообщений: 111
Я тоже замечал, что файрфокс в два раза тормазнутее оперы. А можно как нибудь его настроить (желательно чтобы флэшка сама это делала) чтобы он больше ресурсов выделял?

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

Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,182
Цитата:
(желательно чтобы флэшка сама это делала)
флэш - клиентское приложение, а не exe вирус, который хакает браузеры.

P.S. зато опера сама по себе тормознутая во многих отношениях...
__________________
Flash Developer
Папа TDP4 Team Battle

Старый 08.03.2008, 16:09
negin вне форума Посмотреть профиль Отправить личное сообщение для negin Найти все сообщения от negin
  № 8  
Ответить с цитированием
negin

Регистрация: Jan 2008
Сообщений: 21
Я не знаю когда вы копировали. Но работу с BitmapData надо делать делать с ещё не визуализированными объектами. Всё сделали и только потом addChild(...)

Старый 10.03.2008, 01:00
mikleb вне форума Посмотреть профиль Отправить личное сообщение для mikleb Найти все сообщения от mikleb
  № 9  
Ответить с цитированием
mikleb

Регистрация: Feb 2008
Сообщений: 111
Цитата:
Сообщение от negin
Я не знаю когда вы копировали. Но работу с BitmapData надо делать делать с ещё не визуализированными объектами. Всё сделали и только потом addChild(...)
Так нужно анимацию делать с ними, чтобы прямо во время работы что то менялось

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

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

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

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

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


 


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


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