![]() |
|
||||||||||
|
|||||
|
Регистрация: Jul 2007
Сообщений: 14
|
Как можно организовать выполнение второй функции после окончания выполнения первой? Третей - после выполнения второй и т. д.
И еще не пойму как работают глобальные переменные. Ниже привожу код, который не работает до конца. Может как то по-другому можно сделать? _root.createEmptyMovieClip ("main_top", 5);
main_top._x=150;
main_top._y=296;
main_top.lineStyle (0, 0xFF0000, 100);
main_top.beginFill (0xFF0000);
main_top.moveTo (0, 0);
main_top.lineTo (501, 0);
main_top.lineTo (501, 3);
main_top.lineTo (0, 3);
main_top.lineTo (0, 0);
main_top.endFill ();
_root.createEmptyMovieClip ("main_middle", 3);
main_middle._x=150;
main_middle._y=300;
main_middle.lineStyle (0, 0xFBFFE6, 100);
main_middle.beginFill (0xFBFFE6);
main_middle.moveTo (0, 0);
main_middle.lineTo (500, 0);
main_middle.lineTo (500, 3);
main_middle.lineTo (0, 3);
main_middle.lineTo (0, 0);
main_middle.endFill ();
_root.createEmptyMovieClip ("main_bottom", 4);
main_bottom._x=150;
main_bottom._y=304;
main_bottom.lineStyle (0, 0xFF0000, 100);
main_bottom.beginFill (0xFF0000);
main_bottom.moveTo (0, 0);
main_bottom.lineTo (501, 0);
main_bottom.lineTo (501, 3);
main_bottom.lineTo (0, 3);
main_bottom.lineTo (0, 0);
main_bottom.endFill ();
_root.createEmptyMovieClip ("main_l", 1);
main_l._x=150;
main_l._y=0;
main_l.lineStyle (0, 0xFBFFE6, 100);
main_l.beginFill (0xFBFFE6);
main_l.moveTo (0, 0);
main_l.lineTo (1, 0);
main_l.lineTo (1, 1);
main_l.lineTo (0, 1);
main_l.lineTo (0, 0);
main_l.endFill ();
_root.createEmptyMovieClip ("main_r", 2);
main_r._x=649;
main_r._y=600;
main_r.lineStyle (0, 0xFBFFE6, 100);
main_r.beginFill (0xFBFFE6);
main_r.moveTo (0, 0);
main_r.lineTo (1, 0);
main_r.lineTo (1, 1);
main_r.lineTo (0, 1);
main_r.lineTo (0, 0);
main_r.endFill ();
_global.x_1=0;
_global.x_2=0;
function schetchik_I()
{
main_l._height=main_l._height+5;
main_r._height=main_r._height+10;
main_r._y=main_r._y-5;
if (main_l._height>296)
{
_global.x_1=1;
clearInterval(inter_I);
}
}
var inter_I:Number=setInterval(schetchik_I, 1);
if (_global.x_1==1)
{
function schetchik_II()
{
main_l._height=main_l._height-5;
main_r._height=main_r._height-10;
main_r._y=main_r._y+5;
main_top._y=main_top._y-5;
main_bottom._y=main_bottom._y+5;
main_middle._y=main_middle._y-5;
main_middle._height=main_middle._height+10;
if (main_middle._height>400)
{
_global.x_2=1;
main_middle._y=100;
main_middle._height=400;
main_top._y=96;
main_bottom._y=502;
clearInterval(inter_II);
}
}
var inter_II:Number=setInterval(schetchik_II, 1);
}
if (_global.x_2==1)
{
function schetchik_III()
{
main_l._y=main_l._y+5;
main_r._y=507;
main_r._height=main_r._height-5;
if (main_r._height<6)
{
main_r._height=0;
clearInterval(inter_III);
}
}
var inter_III:Number=setInterval(schetchik_III, 1);
}
|
|
|||||
|
в конце каждой функции вызывай следующую функцию.
А вообще если записывать так: то func2 не вызывается пока не выполнится func1. |
|
|||||
|
Регистрация: Jul 2007
Сообщений: 14
|
Все равно не понял как. Там вызов происходит по setInterval и если просто попорядку писать функции, то они начнутся практически одновременно. Можно ли как-то внутри функции присвоить переменной значение, а потом уже вне функции при проверке значения этой переменной запустить или не запустить другую функцию? Ну или что-то похожее как сделать?
|
|
|||||
|
Регистрация: Jul 2007
Сообщений: 14
|
Попробуй выполнить этот код и увидишь, что функции выполняются параллельно (одновременно).
_root.createEmptyMovieClip ("m", 1);
m._x=0;
m._y=100;
m.lineStyle (0, 0xFF0000, 100);
m.beginFill (0xFF0000);
m.moveTo (0, 0);
m.lineTo (25, 0);
m.lineTo (25, 25);
m.lineTo (0, 25);
m.lineTo (0, 0);
m.endFill ();
_root.createEmptyMovieClip ("n", 2);
n._x=0;
n._y=200;
n.lineStyle (0, 0x33289B, 100);
n.beginFill (0x33289B);
n.moveTo (0, 0);
n.lineTo (25, 0);
n.lineTo (25, 25);
n.lineTo (0, 25);
n.lineTo (0, 0);
n.endFill ()
function p_1()
{
m._x=m._x+5;
if (m._x>300)
{
clearInterval(i_1)
}
}
function p_2()
{
n._x=n._x+5;
if (n._x>300)
{
clearInterval(i_2)
}
}
var i_1:Number=setInterval(p_1, 1);
var i_2:Number=setInterval(p_2, 1);
|
|
|||||
|
Регистрация: Jul 2007
Сообщений: 14
|
Ясно. А как сделать, что бы первая функция выполнялась n-ое кол-во раз до наступления условия, описанного ней, а только потом запускалась на выполнение вторая функция?
|
|
|||||
|
Регистрация: Jul 2007
Сообщений: 14
|
Ага, я уже и сам догадался. Не могу только теперь понять как остановить второй setInterval.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 08:24. |
|
|
« Предыдущая тема | Следующая тема » |
|
|