4AM Games
блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
|
Оригинал писал C2Plus
Цитата:
...кстати говоря, менять уровни местами можно используя swapDepths. Таким образом, например, можно менять мувик в _level0 без перезагрузки остальных.
В мазиле после этого может глючить загрузка файлов, а именно созданые до замены ссылки на мувиклипы в замененом уровне или что-то вроде этого, точно не помню.
Насчет изменения фпс и размеров ничего не могу сказать, сейчас лень эксперементировать...
а то нельзя, нельзя... Можно!
|
Цитата:
да, именно _level0.swapDepths (_level1);
Эта операция меняет местами сами уровни, после нее все, что было в _level1 будет доступно через _level0 и наоборот.
Вот пример:
http://www.bsmart.ru/archives/misc/swap_levels.rar
смотреть во флеше, т.к. вывод идет через трассировку.
|
Цитата:
область применения, прямо скажу, специфическая... Допустим, есть набор готовых свфок, предположим, это игра или анимация, и мы хотим показывать поверх нее некий рекламный блок, однако, свфка на это не заточена и более того, не хочет работать в _level1 (или в муве _level0) по принципиальным соображениям. Разумеется, ее исходник не доступен. В таком случае мы можем сделать свой загрузчик, который подгрузит рекламу и свфку в произвольные уровни, а затем свфку поставит на удобное ей место - в _level0. Главное поставить ее в _level0 до ее инициализации, хотя тут возможны варианты.
В общем, это средство на крайняк - для исправления кривой архитектуры приложения. Однако примечательно то, что имя уровня фактически зависит от его глубины, и это просто прикольно.
С другой стороны, _level`ам тоже есть применение, хотя, наверное, все, что они позволяют сделать, возможно реализовать и на мувиклипах... Быть может, на мувиклипах даже лучше, не знаю - на мувиках в _level0 - есть родитель для всего, а на левелах общего родителя всего нет, хотя, корневой элемент можно и игнорировать при необходимости, а можно и самому создать корневой элемент... С другой стороны, _level`ы сильнее изолированы друг от друга, чем соседние мувики, которые могут найти друг друга через родителя... Это, наверное, вопрос из разряда: "Разбивать яйцо следует острой стороной или тупой?".
|
а теперь от себя
Есть еще второй способ менять FPS, это через setInterval(), у данного способа есть свои минусы и плюсы
минус - лишний код, и надо обрабатывать вручную
плюс - можно двигать объекты с разной скоростью
Недавно я написал класс FPS который занимаеться этим
Цитата:
Недавно я писал класс FPS
скачать можно тут, как пользоваться классами можно узнать в документации к флэшу
Код:
import orange.utils.FPS;
var boo:FPS = new FPS(2);
this.createEmptyMovieClip("ball_mc",3);
this.ball_mc.lineStyle(35,0xff0000,100);
this.ball_mc.moveTo(0,0);
this.ball_mc.lineTo(0.2,0);
this.boo.onEnterFrame = function () {
trace("boo");
_root.ball_mc._x ++;
this._fps +=0.5;
}
Второй способ это через setInterval
|
Или использовать вариант silin'а
Код:
class FPS{
var onEnterFrame: Function;
private var _framerate, intID : Number;
private var listeners:Array;
function FPS (frameRate){
_fps = frameRate;
listeners=[this]
}
function get _fps(){
return _framerate;
}
function set _fps (frameRate){
clearInterval (intID);
_framerate = frameRate
intID=setInterval(this,'update',1000 / frameRate)
}
function stop (){
clearInterval (intID);
}
function play (){
_fps = _framerate;
}
private function update(){
for(var i in listeners) listeners[i].onEnterFrame();
updateAfterEvent();
}
function addListener(obj){
listeners.push(obj)
}
}
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^
Последний раз редактировалось Nirth; 25.06.2005 в 20:08.
|