Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   вопрос по setInterval&setInterval (http://www.flasher.ru/forum/showthread.php?t=51606)

Fapser 18.11.2003 11:35

вопрос по setInterval&setInterval
 
кто может пояснить данную запись:

_root.mcMain.onEnterFrame=function(){};
_root.iIntervalID=setInterval(function(){_root.mcMain.onEnterFrame=MoveMovie; clearInterval(_root.iIntervalID); }, 2000);



??? ЗАранее благодарен

Fapser 18.11.2003 11:52

мне нужно чтоб какое то время оnEnterFrame тормознул а потом заработал

Пушистик 18.11.2003 13:06

ну во первых пустой обработчик...

_root.mcMain.onEnterFrame=function(){};

можно выкинуть...

а во второй строке присваится переменная с нежелательным для нее именем...и очищяется интервал...

Fapser 18.11.2003 13:12

как понять к нежелательным для нее именам...?

Fapser 18.11.2003 13:37

как мне сделать чтоб эта функция тормознула а потом заработала....а при данном коде она сначала работает а потом тормозит:(

Fapser 18.11.2003 13:53

и еще вопрос как с помощью 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);

второе -
что за "другой экземпляр" и "другие координаты" ?

Fapser 18.11.2003 14:08

у меня в библиотеке есть мув название у него 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;
}


Fapser 19.11.2003 13:16

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. ну вот. это и заменяет твой ИФ...

Fapser 19.11.2003 13:39

вопрос:
this._alpha -= 4*(this._alpha>0);

в принципе все понятно: выполнять над данным мувиком -=4 по _alpha до тех пор пока _alpha>0 .... как понимать "*" ?

также я встречал что так пишут: a=Math.random()*50 могу ошибиться;

Nox Noctis 19.11.2003 13:45

если альфа неположительна - умножишь 4 на ноль :)
если отрицательна - то на 1

вот и все.. это выполняет функции твоего ифа :)

Fapser 19.11.2003 14:01

как понимать "*" ?

Nox Noctis 19.11.2003 14:09

МАТЕМАТИЧЕСКИЙ ЗНАЧОК УМНОЖЕНИЯ :D

Fapser 19.11.2003 14:25

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

функция заданная сетИнтервалом выполняется каждые # милисекунд, начиная с # милисекунды с момента вызова сетИнтервала :) это же логично...

Fapser 19.11.2003 15:37

Nox у меня вопрос вот если у меня изображение (растр) а я хочу его сделать ярче (эффект лампочки) - мне нужно изменить алфу, НО как я понимаю алфа по умолчанию 100% ... что доказало тщетность моих попыток изменить ее через прямое обращение :

_root.cabina.fara1.f1._alpha += 3*(_root.fara1.f1._alpha<150);

как мне можно это сделать ?

Nox Noctis 19.11.2003 15:53

у альфы предельное значение - 100

Fapser 19.11.2003 18:00

Nox ...

var nam = _root.attachMovie("svet", "svet"+t, t+200);

nam._x = coord[t].x;

nam._y = coord[t].y;

вопрос что означает после [t], .x ???

что такое .х?

Fapser 20.11.2003 11:00

вопрос
 
var nam = _root.attachMovie("svet", "svet"+t, t+200);

nam._x = coord[t].x;

nam._y = coord[t].y;

вопрос что означает после [t], .x ???

что такое .х?

Flasham 21.11.2003 17:53

Хи
 
Добрый день.

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
при условии что код не написан маньяком
только не надо грязи :)))


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

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