Просмотр полной версии : вопрос по setInterval&setInterval
кто может пояснить данную запись:
_root.mcMain.onEnterFrame=function(){};
_root.iIntervalID=setInterval(function(){_root.mcMain.onEnterFrame=MoveMovie; clearInterval(_root.iIntervalID); }, 2000);
??? ЗАранее благодарен
мне нужно чтоб какое то время оnEnterFrame тормознул а потом заработал
Пушистик
18.11.2003, 13:06
ну во первых пустой обработчик...
_root.mcMain.onEnterFrame=function(){};
можно выкинуть...
а во второй строке присваится переменная с нежелательным для нее именем...и очищяется интервал...
как понять к нежелательным для нее именам...?
как мне сделать чтоб эта функция тормознула а потом заработала....а при данном коде она сначала работает а потом тормозит:(
и еще вопрос как с помощью attachMovie вытащить из библиотеки два экземпляра и разместить на разных определенных координатах и обеспечить какое то действие над ними в цикле(уменьшение размеров, альфы)? у меня пока даже вытащить и разместить их не получается вот что я писал
t=200; // так как у меня первые уровни заняты другими приаттаченными мувами начинаем с 200 - го уровня
for (t;t<5;t++){
nam = "svet"+t;
_root.attachMovie("svet1", nam, t);
_root[nam]._x = 200;
_root[nam]._y = 200;
как другому экземпляру задать другие координаты?
Nox Noctis
18.11.2003, 13:57
первое -
_root.frameFunction = function() {
// .....
};
_root.iIntervalID = setInterval(function () {
_root.mcMain.onEnterFrame = _root.frameFunction;
clearInterval(_root.iIntervalID);
}, 2000);
второе -
что за "другой экземпляр" и "другие координаты" ?
у меня в библиотеке есть мув название у него svet1 я в linkage прописываю svet1 и теперь я хочу чтобы два экзепляра этого svet1 появились в определенных координатах
Nox Noctis
18.11.2003, 14:14
можно создать массив с координатами для каждого экземпляра
и при аттаче всем раздать свои...
вроде того:
coord = []
// для первого экземпляра
coord.push({x:10, y:10})
// для второго
coord.push({x:20, y:20})
// для третего
coord.push({x:30, y:30})
// ....
for (var t=0; t<3; t++) {
var nam = _root.attachMovie("svet1", "svet"+t, t+200);
nam._x = coord[t].x;
nam._y = coord[t].y;
}
Nox у меня вопрос : ты заменил код
alfa = getProperty (this,_alpha);
if (alfa>0){alfa-=4};
setProperty(this, _alpha, alfa);
sx = getProperty (this,_xscale);
if (sx>0){sx-=0.5};
setProperty(this, _xscale, sx);
sy = getProperty (this,_yscale);
if (sy>0){sy-=3};
setProperty(this, _yscale, sy);
на:
this._alpha -= 4*(this._alpha>0);
this._xscale -= 0.5*(this._xscale>0);
this._yscale -= 3*(this._yscale>0);
на много проще и меньше.....вопрос в том:
1) работает ли твой код быстрее, если да то почему?
2) первый раз вижу чтобы так писали, потому что недолго еще программирую во флэше....где можно почитать об этом или если не сложно объясни вкратце как это делать, думаю многим было бы интересно?
Nox Noctis
19.11.2003, 13:31
Оригинал написал(а) Fapser
2) первый раз вижу чтобы так писали :D :D
правда не факт что это хорошо ;)
мне нравится оформлять код так..
и в большинстве случаев это только дело вкуса как именно написать..
Оригинал написал(а) Fapser
1) работает ли твой код быстрее, если да то почему?
про setProperty и getProperty -
в МХ короче ведь записать обращения через точки. точечный синтаксис тормознее, да. но ты даже на самой скромной машине вряд ли почувствуешь это... слишком невелика разница. если интересуют точные подробности - то тебе на http://flasm.sourceforge.net/ (где-то видел на русском эту доку. забыл где именно)
насчет конструкций вроде: this._alpha = 4*(this._alpha>0)
если придет какой-нить зануда, то он тебе докажет что этот код работает медленнее чем просто ифы и (set/get)Property... но зато тут всего одна строчка, а не пять :)
(this._alpha>0) - возвращает значение Булева типа. при математических операциях это значение преобразуется к числовому: false дает ноль, true дает единицу.
соотвтетсвенно если альфа не положительная - там будет 0. если положительная - то 1. ну вот. это и заменяет твой ИФ...
вопрос:
this._alpha -= 4*(this._alpha>0);
в принципе все понятно: выполнять над данным мувиком -=4 по _alpha до тех пор пока _alpha>0 .... как понимать "*" ?
также я встречал что так пишут: a=Math.random()*50 могу ошибиться;
Nox Noctis
19.11.2003, 13:45
если альфа неположительна - умножишь 4 на ноль :)
если отрицательна - то на 1
вот и все.. это выполняет функции твоего ифа :)
Nox Noctis
19.11.2003, 14:09
МАТЕМАТИЧЕСКИЙ ЗНАЧОК УМНОЖЕНИЯ :D
Nox по setInterval, я вот читал хелп по нему там написано что
пример 1: Следующий пример вызывает литерал функции КАЖДЫЕ 1000 милисекунд (каждую секунду).
setInterval( function(){ trace("interval called"); }, 1000 );
а как понять что в этом коде:
iIntervalID = setInterval(function(){_root.mcMain.onEnterFrame=start; clearInterval(_root.iIntervalID);}, 2000);
функция start начинает выполняться ЧЕРЕЗ 2 сек
как я понял устанавливает интервал времени через который вызвать определенную функцию но почему в первом коде вызывается постоянно а во втором только один раз .... из-за clearInterval(_root.iIntervalID);????
Nox Noctis
19.11.2003, 14:48
функция заданная сетИнтервалом выполняется каждые # милисекунд, начиная с # милисекунды с момента вызова сетИнтервала :) это же логично...
Nox у меня вопрос вот если у меня изображение (растр) а я хочу его сделать ярче (эффект лампочки) - мне нужно изменить алфу, НО как я понимаю алфа по умолчанию 100% ... что доказало тщетность моих попыток изменить ее через прямое обращение :
_root.cabina.fara1.f1._alpha += 3*(_root.fara1.f1._alpha<150);
как мне можно это сделать ?
Nox Noctis
19.11.2003, 15:53
у альфы предельное значение - 100
Nox ...
var nam = _root.attachMovie("svet", "svet"+t, t+200);
nam._x = coord[t].x;
nam._y = coord[t].y;
вопрос что означает после [t], .x ???
что такое .х?
var nam = _root.attachMovie("svet", "svet"+t, t+200);
nam._x = coord[t].x;
nam._y = coord[t].y;
вопрос что означает после [t], .x ???
что такое .х?
Добрый день.
coord - это некий созданный объект, в котором созданны объекты с именами [t], которые в свою очередь имеют свойства (переменные) x и y, содержащие данный. Вот и все.
PS: Я сомневаюсь в записи coord[t] - может ли имя объекта быть цифрой.
удачи
Nox Noctis
21.11.2003, 18:28
Flasham, именем свойства может быть что угодно :)
а в данном случае там вообще массив объектов.
то есть coord - массив, а в нем объекты со свойствами x и y
greyshaman
21.11.2003, 23:11
Оригинал написал(а) Nox Noctis
а в данном случае там вообще массив объектов.
то есть coord - массив, а в нем объекты со свойствами x и y
при условии что код не написан моньяком
Nox Noctis
22.11.2003, 02:04
Оригинал написал(а) greyshaman
при условии что код не написан маньяком только не надо грязи :)))
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.