Резиновый флеш (как оптимизировать?) @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 16 ] 
*   Список форумов / Технологии изображения / Flash » ответить » создать топик « | »
Автор Сообщение
ulitin kirill
постоянный участник
92
Сообщения: 2844
Зарегистрирован: 17.07.05
Откуда: Санкт-Петербург
Заголовок сообщения: Резиновый флеш (как оптимизировать?)
Сообщение Добавлено: 23 Август 2007, 22:10:23 
Что это такое и как работает понятно, писали про это много и местами http://noregret.org/tutor/elastic/ очень хорошо
Но меня очень напрягает, что в каждом кадре нужно дублировать одно и тоже, совершенно не понимаю почему флеш не хочет использовать функцию созданную в первом кадре во всех последующих =(
Кто-нибудь может рассказать как можно оптимизировать?

_________________
хочу лето, очень.
karamba Муж.
старожил
209
Сообщения: 6498
Зарегистрирован: 17.08.05
Откуда: Киев. А шо?
Сообщение Добавлено: 23 Август 2007, 22:25:52 

ulitin kirill писал(а):
Но меня очень напрягает, что в каждом кадре нужно дублировать одно и тоже, совершенно не понимаю почему флеш не хочет использовать функцию созданную в первом кадре во всех последующих


не понял сказанного, но думаю, что отдельный слой с пустым фреймом, в котором лежит только код, растянутый на весь занятый другими слоями таймлайн, вам поможет

_________________
клетчатый!
Бaзиль Муж.
участник
49
Сообщения: 1288
Зарегистрирован: 13.02.05
Откуда: Околомосковье
Сообщение Добавлено: 23 Август 2007, 23:19:38 
karamba, +1

по своему горькому опыту, я больше никогда не делаю ролик в самой сцене. Мувиклип, а в нем уже все остальное.

_________________
Не кочегары мы, не плотники,
Но сожалений горьких нет -
Как нет?
А мы дизайнеры-художники,
И с высоты вам шлем привет -
Привет!
ctrlaltdel Муж.
соучастник
13
Сообщения: 866
Зарегистрирован: 17.02.05
Сообщение Добавлено: 23 Август 2007, 23:40:31 
Бaзиль, точно так-же …. и вот к этому самому ролику - и применяем резиновость
без проблем можно прописать функцию , а потом в нужный момент её вывать , с разными параметрами для разных мувиков
но лучше всего (ИМХО) всё в 1 мувик , и в руте - код

_________________
Вы смеётесь над нами , потому что мы отличаемся от вас,
а мы смеёмся над вами, потому что вы НЕ отличаетесь друг
от друга
ulitin kirill
постоянный участник
92
Сообщения: 2844
Зарегистрирован: 17.07.05
Откуда: Санкт-Петербург
Сообщение Добавлено: 24 Август 2007, 00:16:22 

karamba писал(а):
не понял сказанного, но думаю, что отдельный слой с пустым фреймом, в котором лежит только код, растянутый на весь занятый другими слоями таймлайн, вам поможет



Помогает только для позиционирования мувиков, а я хочу их еще и масштабировать
Собстно вот сделал как вы рекомендовали:
http://www.likeleto.ru/tmp/test/
На втором кадре малиновый квадрат только позицианируется а маштабирования не происходит.
Как и прежде если продублировать код во втором кйфрейме то все в порядке и маштабирование работает...
Но код превращается в кашу...

исходнег www.likeleto.ru/tmp/test/01f8.fla

_________________
хочу лето, очень.
ctrlaltdel Муж.
соучастник
13
Сообщения: 866
Зарегистрирован: 17.02.05
Сообщение Добавлено: 24 Август 2007, 01:09:08 

Цитата:
На втором кадре малиновый квадрат только позицианируется а маштабирования не происходит.

значит неверно делаете :)))
Код:
Stage.align = "TL";
setProperty("", _focusrect, false);
setProperty("", _quality, "BEST");
Stage.scaleMode = "noScale";
this.onEnterFrame = function():Void  {
   preloader._x = Stage.width/2;
   if (preloader.pole.text == "") {
      this.stop();
   }
   var percent:Number = Math.floor(this.getBytesLoaded()/this.getBytesTotal()*1000)/10;
   preloader.logo._alpha = Math.floor(percent);
   preloader.pole.text = Math.floor(percent);
//обратите внимание - тут меняется размерчег
   preloader.polosa._xscale = percent;
   if (getBytesLoaded() == this.getBytesTotal()) {
      black.play();
      //this.nextFrame();
      delete this.onEnterFrame;
   }
};

главный мувиклип- preloader ,
и в нём замечательно скейлится мувиклип polosa (правда я на ентер фрейм повесил)
также альфой появляется мувиклип logo

_________________
Вы смеётесь над нами , потому что мы отличаемся от вас,
а мы смеёмся над вами, потому что вы НЕ отличаетесь друг
от друга
eddy444 Муж.
Модератор
315
Сообщения: 14467
Зарегистрирован: 05.05.03
Откуда: NSK
Сообщение Добавлено: 24 Август 2007, 07:21:29 
ulitin kirill, так вы разберитесь с обработчиком события. У вас событие - "онресайз". Тое обновление положения происходит только при изменении окна.
а во втором кадре его не происходит.
вешайте на "онентерфрейм" - все будет обновлятся постояннно независимо от "онресайз".
Екзи Муж.
новый человек
0
Сообщения: 48
Зарегистрирован: 18.08.07
Откуда: Н Новгород
Сообщение Добавлено: 24 Август 2007, 07:44:10 
Зачем делать переход кадров? Слойства _visible например, отменили чтоль?
ulitin kirill
постоянный участник
92
Сообщения: 2844
Зарегистрирован: 17.07.05
Откуда: Санкт-Петербург
Сообщение Добавлено: 24 Август 2007, 09:49:43 
Екзи, типо всё, что нужно засунуть в первый кадр и скрыть... а с точки зрения загрузки процессора это как?

eddy444, ммм мочему не происходит кто мешает подергать окно во втором кадре, если поизменять размеры то зеленый квадрат и маштабируется и позицианируется, а малиновый только позиционируется

ctrlaltdel, спасибо, интересно, а вот этим delete this.onEnterFrame; вы что делаете?

_________________
хочу лето, очень.
ctrlaltdel Муж.
соучастник
13
Сообщения: 866
Зарегистрирован: 17.02.05
Сообщение Добавлено: 24 Август 2007, 09:51:49 

Екзи писал(а):
Зачем делать переход кадров? Слойства _visible например, отменили чтоль?


закоментированно Ю и тут дело не в виззибле а в том что у человека не ресайзится главное тут (preloader.polosa._xscale = percent)
а на Энтер фрейме это или на рисайзе - не важно …. я показал пример который был в проекте , чтоб не ковырять в 12 ночи свои спящие мозги, а следовательно который работает.и ещё ….. переход кадров имеет 1 плюс например в случае если у вас многим клипам надо присвоить визибле , то машина всё таки будет притормаживать , а при переходже или delete всё будет нормально :bye:

Цитата:
спасибо, интересно, а вот этим delete this.onEnterFrame; вы что делаете?


удаляется обработчик он ентер фрейм ….. - то есть это обработчик ресайзи именно для прелоадера , и если прелоадер сделал своё дело - зачем нужен обработчик.…

_________________
Вы смеётесь над нами , потому что мы отличаемся от вас,
а мы смеёмся над вами, потому что вы НЕ отличаетесь друг
от друга
ulitin kirill
постоянный участник
92
Сообщения: 2844
Зарегистрирован: 17.07.05
Откуда: Санкт-Петербург
Сообщение Добавлено: 24 Август 2007, 10:08:46 

ctrlaltdel писал(а):
переход кадров имеет 1 плюс например в случае если у вас многим клипам надо присвоить визибле , то машина всё таки будет притормаживать , а при переходже или delete всё будет нормально всем пока


Вот я тоже думаю что данный подход более рационален.

ctrlaltdel, код ваш еще не потестил, такой вопрос как флеш понимает что пора ресайзить и двагать мувики? У вас на этом кадре стоп или он на него все время циклично переходит пока все не загрузится?

_________________
хочу лето, очень.
ctrlaltdel Муж.
соучастник
13
Сообщения: 866
Зарегистрирован: 17.02.05
Сообщение Добавлено: 24 Август 2007, 10:39:35 
:)
просто создайте 1 мувиклип под именем my_mc
в нём внутри создайте 2 клипа 1-kub 2- kvadrat которые будут одинаковыми по рзамеру , но разные по цвету .и будут находится друг над другом
и на onResize вешаете код
my_mc._x=Stage.width/2
а после ресайза (можно и внутри ресайза )
my_mc.kub._xscale =300 чё тут тестить :)

_________________
Вы смеётесь над нами , потому что мы отличаемся от вас,
а мы смеёмся над вами, потому что вы НЕ отличаетесь друг
от друга
Мигель Муж.
участник
75
Сообщения: 1453
Зарегистрирован: 09.01.04
Откуда: http://design-cafe.ru
Сообщение Добавлено: 24 Август 2007, 11:52:17 
Господа, или лето на Вас действует уже неадекватно, или одно из двух.
В один мув или в два - это все через пятку на яйцо.
А уж онЕнтерфрейм - это вообще за гранью.
Принципиальная ошибка очевидна.
ulitin kirill, объясняю почему не работает.

У вас в первом кадре описан массив объектов (МувиКлипов).
Код:
resize_obj.position = [test1, test2];


Но в первом кадре НЕ существует объекта test2.
Далее в первом же кадре, Вы задаете пропорции для масштабирования.
Код:
test1._widthRatio = test1._width/resize_obj.normal_width;
test1._heightRatio = test1._height/resize_obj.normal_height;
test2._widthRatio = test2._width/resize_obj.normal_width;
test2._heightRatio = test2._height/resize_obj.normal_height;

ОПЯТЬ ЖЕ нет такого объекта как test2 в первом кадре.

Пропорции габаритов для объекта, равно как и добавление объекта в массив нужно осуществлять тогда и ТОЛЬКО тогда, когда объект создается.
В вашем случае строку
Код:
resize_obj.position = [test1, test2];

в первом кадре надо заменить на
Код:
resize_obj.position = [test1];
.

И из первого кадра строки
Код:
test2._widthRatio = test2._width/resize_obj.normal_width;
test2._heightRatio = test2._height/resize_obj.normal_height;

перенести во второй, после чего добавить
Код:
resize_obj.position.push(test2);
resize_obj.onResize();
ulitin kirill
постоянный участник
92
Сообщения: 2844
Зарегистрирован: 17.07.05
Откуда: Санкт-Петербург
Сообщение Добавлено: 24 Август 2007, 12:09:18 
Мигель, :beer: :beer: :beer: спасибо, строки с переносить пробовал, но с массивом, да затупил.

_________________
хочу лето, очень.
Мигель Муж.
участник
75
Сообщения: 1453
Зарегистрирован: 09.01.04
Откуда: http://design-cafe.ru
Сообщение Добавлено: 24 Август 2007, 12:27:31 
ulitin kirill, Только тут возможен один баг )
Если с третьего кадра будет осуществлен переход на второй, то test2 еще раз добавится в массив.
Визуально это ничего не изменит, просто test2 будет обработан дважды, однако это грязь.

Если предполагается переход по кадрам во всех направлениях, лучше конечно в каждом кадре руками создавать массив resize_obj.position = [test1,test2,…, testN];
Или же написать какую-либо функцию которая будет отслеживать перемещение по кадрам и соответсвенно убирать/добавлять нужные элементы в массив.
ctrlaltdel Муж.
соучастник
13
Сообщения: 866
Зарегистрирован: 17.02.05
Сообщение Добавлено: 24 Август 2007, 12:39:41 
Мигель, на ентер Фрейме у меня - потому что прелоадер ,конечно лучше на ресайзе
по поводу позиционирования - я просто привёл пример своего кода , что касается исходника - я его видел , но как и что там описано - не помню ,

Цитата:
Господа, или лето на Вас действует уже неадекватно, или одно из двух.

НОЧЬ действует :D туплю :) невидя исходников не про тот ресайз пдумал :))))
а я дурак подумал что у человека , скейл внутри отцентрованного мувика не пашет , а главное лень в сурс глянуть :) всё пора спать …..

_________________
Вы смеётесь над нами , потому что мы отличаемся от вас,
а мы смеёмся над вами, потому что вы НЕ отличаетесь друг
от друга
*   Список форумов / Технологии изображения / Flash « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 16 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100