Просмотр полной версии : Размещение ф-ий.HELP!!!
var p:Number =5, max:Number = 150;
function rotate (i1:Number, obj:MovieClip, max1:Number)
{
obj._parent.onEnterFrame = function()
{
if (i1<max1)
{
obj._rotation += i1;
i1++;
}
else
{
delete obj._parent.onEnterFrame;
return ;
}
}
}
function rotateplz (obj:MovieClip, i2:Number)
{
obj._parent.onEnterFrame = function()
{
if (i2>0)
{
obj._rotation+=i2;
i2--;
}
else
{
delete obj._parent.onEnterFrame;
return;
}
}
}
rotate (p, mc, max);
rotateplz(mc, p);
Данный код я разместил на первый кадр. 'mc' - это клип пропеллера. Странно, но почему-то проигрыватель пропускает первую
obj._parent.onEnterFrame = function() {........}
и переходит ко втрорй ф-ии(rotateplz), которая выполняется нормально.
(Конечно,я могу вложить одну ф-ию в другую, но мне интересно, почему так происходит.)
Обьясните, пожалуйста, почему так происходит и как надо поступить в данной ситуации.
0xFFFFFF
17.05.2006, 23:45
у тебя вторая функция перезаписывает obj._parent.onEnterFrame
ты их вызываешь одновременно и onEnterFrame первой сработать не успевает.
попробуй в конце написать
rotate(p, mc, max);
var delay = setInterval(this,"rotate2",2000);
rotate2 = function () {
clearInterval(delay);
rotateplz(mc, p);
}
и вставить трейсы для проверки выполнения функций.
NeZnayKa
18.05.2006, 12:23
хмм... белая начала помогать нубам а не пинать...
с чего бы это...? :)
motor4ik
18.05.2006, 12:46
Поняла наверное, что была неправа.
0xFFFFFF
18.05.2006, 13:58
хмм... белая начала помогать нубам а не пинать...
с чего бы это...? :)
посмеялись и хватит. скучно стало. пора работать, писать программы, можно иногда и нубу помочь, они тожа люди, иногда даже флешеры.
motor4ik
18.05.2006, 14:53
о! белая взрослеет чтоли, нуба человеком назвала
0xFFFFFF
18.05.2006, 14:55
о! белая взрослеет чтоли, нуба человеком назвала
это комплимент?
motor4ik
18.05.2006, 15:00
нубу? думаю конечно
0xFFFFFF
18.05.2006, 15:01
у меня настроение сегодня очень хорошее.
motor4ik
18.05.2006, 15:01
а как вы такие аватарки рисовали? я просто не художник но идее такая, мотоцикл такой зелененький пушистый мне бы, вот бы круто...
motor4ik
18.05.2006, 15:02
у меня настроение сегодня очень хорошее.
круто. может мне аватрку нарисуешь :rolleyes:
т. е. вы хотите сказать, что вторая ф-ия вызывается до завершения первой??
0xFFFFFF
18.05.2006, 18:43
т. е. вы хотите сказать, что вторая ф-ия вызывается до завершения первой??
нет. вторая функция вызывается после первой. но onEnterFrame первой функции не успевает произойти.
0xFFFFFF
18.05.2006, 18:44
а как вы такие аватарки рисовали? я просто не художник но идее такая, мотоцикл такой зелененький пушистый мне бы, вот бы круто...
я тоже не художник. просто беру и рисую.
прикольно рисовать кодом.. но нельзя вставлять в аватарки swf'ки.. :(
странно...я ведь написал, чтобы первая ф-ия завершалась только после выполнения счетчика...
0xFFFFFF
18.05.2006, 19:27
странно...я ведь написал, чтобы первая ф-ия завершалась только после выполнения счетчика...
обе твои функции только переписывают onEnterFrame, все что находится внутри этой функции не выполняеся пока эта функция не будет вызвана. она вызовется только в следующем кадре, т.е. после выполнения всех функций в это кадре. если ты хочешь хотя бы один раз вызвать эту функцию после её объявления пиши:
function rotate(i1:Number, obj:MovieClip, max1:Number) {
obj._parent.onEnterFrame = function() {
if (i1<max1) {
obj._rotation += i1;
i1++;
} else {
delete obj._parent.onEnterFrame;
return;
}
};
obj._parent.onEnterFrame(); // вызов
}
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.