![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+4 04.10.08]
Регистрация: Oct 2008
Сообщений: 10
|
Существует сцена, в центре которой стоит блок с Event.RESIZE который просто центрует этот блок при смене размера браузера.
Далее в этот блок грузится через getDefinition несколько инстансов разных swf файлов с документ классом. А так же помимо эти внешних классов просто картинка обёрнутая в movieclip. При быстрой смене размера браузера (тупо взял за край и подёргал мышкой) движения мувика с картинкой по отклику в несколько раз превышает основной блок. Тобишь картинка летает и центруется очень быстро, а блок иногда ваще зависает иногда ступенчето с низким fps двигается. Помимо этого с разной скоростью центруются мувиклипы внутри самого блока. (Нарушается внутреняя центровка) В Мозилле это особенно чувствуется. Странно особенно то, что смену позиции при ресайзе мувиклип с картинкой наследует от главного блока, но при этом главный блок медленей обновляет свою позицию. Как можно закрепить все элементы для синхронно движения, и вообще почему это происходит? (Возможно выход как-то реорганизовать клипы повесив на каждый Event Resize?) Загрузка в сцену несколько инстансов таким методом thumb=evt.target.applicationDomain.getDefinition("thumb");
thumb1=new thumb();
.....
stage.addChild(thumb1);
thumb1.customMadeFunctionStart();
Какая алтернатива улучшит перформанс всей сцены в целом? В програмирование я не первый год, основные языки C++, Java, PHP. С самим АС3 проблем нет, но вот с тонкастями и обходыми путями совсем не знаком, делаю первый проект на АС, обгуглил всё, ответа не нашёл. Памажите чем кто может! |
|
|||||
|
[+4 04.10.08]
Регистрация: Oct 2008
Сообщений: 10
|
Скажите хотябы насчёт последнего.
Насколько это оптимально создавать внешние swf c мувиклипом и документирвоаным классом. А потом загружать весь класс в основную сцену, и создавать его инстансы? Код преведён выше. Может ли такой подход значительно подтормаживать обработку сцены? Ести ли альтернативные методы? |
|
|||||
|
[+4 04.10.08]
Регистрация: Oct 2008
Сообщений: 10
|
Весело...
что ниодного знатока applicationDomain.getDefinition() ??? |
|
|||||
|
>>Как можно закрепить все элементы для синхронно движения
как вариант: сосредоточить позиционирование всех элементов в одном обработчике.. причем здесь applicationDomain.getDefinition я не понял.., имхо не при чем: попробуй собрать аналогичную схему их собственной библиотеки, думаю, что результат будет таким же |
|
|||||
|
Modus ponens
|
Ну не знаю... повесь рядом таск менеджер, когда перетаскиваешь рамку браузера... может плееру просто тяжело пересчитать... По идее ресайз для всех элементов и так вызывается в одном обработчике... так что разницы быть не должно (это при условии, что стейдж для всех общий).
кроме того влияет то, с какой частотой браузер диспатчит своим детям этот самый ресайз... если он делает это недостаточно часто, то тут уж ничем не поможешь...
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 05.10.2008 в 16:30. |
|
|||||
|
[+4 04.10.08]
Регистрация: Oct 2008
Сообщений: 10
|
silin,
Ты предлогаешь менять позицию всём элементам вместо того чтоб засунуть все элементы в один контейнер и его позиционировать? Есть довод что это поможет? Насчёт applicationDomain.getDefinition : вообще хотел спросить насколько классы созданные таким методом и преминяемые в сцене сложны затрудняют рендер сцены? wvxvw, Вешал таск менегер выше 2-3 процентов неподнимается. Насчёт диспачера интересно.. может есть какая то инфа о перформансе разных браузеров касательно диспатчера? |
|
|||||
|
сори, видимо не правильно прочитал ситуацию
из того, что "картинка летает и центруется очень быстро, а блок иногда ваще зависает.." я понял, что считаются они каждый сам по себе.. у тебя получается, что элементы контейнера по разному реагируют на его позиционирование? |
|
|||||
|
[+4 04.10.08]
Регистрация: Oct 2008
Сообщений: 10
|
Именно! Они все в контейнере.
На них самих вообще эвента нету. Контейнер только позицию меняет, как следтвие элементы тоже, однако с разной чистотой и скоростью. |
|
|||||
|
Modus ponens
|
FF3 update time: 9 update time: 9 update time: 8 update time: 7 update time: 9 update time: 7 update time: 7 update time: 8 update time: 9 update time: 8 update time: 8 update time: 8 update time: 8 update time: 8 update time: 8 update time: 8 update time: 8 update time: 9 update time: 7 update time: 9 update time: 8 update time: 7 update time: 7 update time: 6 update time: 6 update time: 9 update time: 8 update time: 8 update time: 9 update time: 8 update time: 8 update time: 9 update time: 8 update time: 8 update time: 8 update time: 6 update time: 7 update time: 7 IE6 update time: 13 update time: 11 update time: 10 update time: 7 update time: 4 update time: 4 update time: 4 update time: 4 update time: 4 update time: 5 update time: 5 update time: 5 update time: 88 update time: 11 update time: 13 update time: 5 update time: 5 update time: 5 update time: 12 update time: 12 update time: 11 update time: 5 update time: 5 update time: 5 update time: 12 update time: 12 update time: 6 update time: 6 update time: 5 update time: 5 update time: 12 update time: 12 update time: 4 update time: 6 update time: 6 update time: 5 update time: 5 update time: 5 update time: 5 Chrome update time: 9 update time: 10 update time: 8 update time: 8 update time: 8 update time: 5 update time: 8 update time: 6 update time: 9 update time: 72 update time: 6 update time: 9 update time: 7 update time: 7 update time: 6 update time: 8 update time: 8 update time: 7 update time: 10 update time: 8 update time: 9 update time: 8 update time: 8 update time: 5 update time: 8 update time: 8 update time: 8 update time: 11 update time: 7 update time: 8 update time: 6 update time: 8 update time: 10 update time: 9 update time: 10 update time: 9 update time: 7 update time: 7 update time: 10 stage.scaleMode = StageScaleMode.NO_SCALE;
stage.addEventListener(Event.RESIZE, handleResize);
var t:int = getTimer();
var tf:TextField = new TextField();
tf.autoSize = TextFieldAutoSize.LEFT;
addChild(tf);
function handleResize(evt:Event):void
{
t = getTimer() - t;
tf.appendText("\rupdate time: " + t);
t = getTimer();
}
__________________
Hell is the possibility of sanity |
![]() |
![]() |
Часовой пояс GMT +4, время: 19:42. |
|
|
« Предыдущая тема | Следующая тема » |
|
|