![]() |
|
||||||||||
|
|||||
|
Регистрация: Sep 2003
Адрес: Czech
Сообщений: 19
|
Не могу понять, почему у меня alpha undefined?
var j = 0;
var intervalId1:Number;
function nomer(id1){
j++;
mci = "mc"+j;
trace (mci);
var i = 0;
var intervalId2:Number;
function alfa(id2){
i++;
trace (mc_[i]._alpha);
if( i >= 10) clearInterval( intervalId2 );
}
intervalId2 = setInterval( alfa, 1 );
if( j >= 14) clearInterval( intervalId1 );
}
intervalId1 = setInterval( nomer, 3000 );
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Именно в этом и ошибка. Вообще код из себя представляет неимоверное месиво.
|
|
|||||
|
Регистрация: Sep 2003
Адрес: Czech
Сообщений: 19
|
а как написать без ошибки?
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
this['mc_'+i]._alpha
|
|
|||||
|
Регистрация: Sep 2003
Адрес: Czech
Сообщений: 19
|
тот же результат - альфа undefined
Если не сложно, посмотри исходник? Задача была такая - чтобы прямоугольники проявлялись через определенные промежутки времени. Не прикрепляется файл.... Выкладываю на фтп http://www.dbpresent.com/tmp/dissolve.rar |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
Как сказал __etc, ваш код сплошное мессиво. К примеру
Посмотрите, что есть this в каждом синтаксисе setInterval. По скольку вы используете второй синтаксис, то у вас не та область видимости, что нужна. |
|
|||||
|
Регистрация: Sep 2003
Адрес: Czech
Сообщений: 19
|
Ну а что мне с моим-то синтаксисом сделать, чтобы код заработал?
Если вместо [mc]_alpha +=2; указать явно имя клипа, например, mc_3._alpha +=2; - всё работает как надо. Помогите, пожалуйста. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Использовать мой ответ из четвертого поста и setInterval( this, 'nomer', 3000 ); (между прочим, iNils дал пояснение, почему не работает. Трудно было понять?)
|
|
|||||
|
Регистрация: Sep 2003
Адрес: Czech
Сообщений: 19
|
Не могу понять.
Предложенный вами вариант тоже не работает. Почему этот код работает var j = 1;
var intervalId1:Number;
function nomer(id1){
j++;
mc = "mc_"+j;
var i = 2;
var intervalId2:Number;
function alfa(id2){
i++;
if (mc=="mc_1")
mc_1._alpha +=2;
else if (mc=="mc_2")
mc_2._alpha +=2;
else if (mc=="mc_3")
mc_3._alpha +=2;
if( i >= 100) clearInterval( intervalId2 );
}
intervalId2 = setInterval( alfa, 1 );
if( j >= 3) clearInterval( intervalId1 );
}
intervalId1 = setInterval( nomer, 3000 );
var j = 1;
var intervalId1:Number;
function nomer(id1){
j++;
mc = "mc_"+j;
var i = 2;
var intervalId2:Number;
function alfa(id2){
i++;
[mc]_alpha +=2;
if( i >= 100) clearInterval( intervalId2 );
}
intervalId2 = setInterval( alfa, 1 );
if( j >= 3) clearInterval( intervalId1 );
}
intervalId1 = setInterval( nomer, 3000 );
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Потому что в коде полный бардак. Проще переписать в более трезвом состоянии.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 10:53. |
|
|
« Предыдущая тема | Следующая тема » |
|
|