Просмотр полной версии : покадровый цикл
Mr.Brownstone
23.06.2004, 21:31
есть такая функция:
flashDown = function (aim) {
couleur = new Color(aim);
m = 255;
x = 50;
aim._parent.onEnterFrame = function() {
m -= x;
x = Math.round(x*.8);
m<0 ? delete aim.onEnterFrame : m;
couleur.setBrightOffset(m);
};
};
когда я пишу
flashDown(mc_1);
flashDown(mc_2);
то изменения происходят только с mc_2, видимо вся завязка с
onEnterFrame. Как мне вызвать покадровый цикл, чтобы работал во всех
клипах?
а ты не пробовал _parent убрать?
Вот, как то так должно быть:
flashDown = function ()
{
this.couleur = new Color(this);
this.m = 255;
this.x = 50;
this.onEnterFrame = function()
{
this.m -= this.x;
this.x = Math.round(this.x*.8);
if(this.m<0) delete onEnterFrame;
else this.couleur.setBrightOffset(this.m);
};
};
flashDown.call(mc_1);
flashDown.call(mc_2);
по разному может быть:
MovieClip.prototype.flashDown = function () {
var couleur = new Color(this),m = 255,x = 50;
this.onEnterFrame = function() {
m -= x;
x = Math.round(x*0.8);
if(m<0) delete this.onEnterFrame;
else couleur.setBrightOffset(m);
};
};
mc_1.flashDown();
mc_2.flashDown();
Silin, а ты так пробовал?
Мне кажется не должно работать по скольку
1. Ты используешь вар которые не действительны при вызове onEnterFrame
2. У меня вечно проблемы с this. Если его явно не указывать то флэш переменных не видит почему-то :-(
класс (в отдельном файле FlashDown.as)
class FlashDown extends MovieClip {
function FlashDown(movieClip:MovieClip, m:Number, x:Number) {
var couleur = new Color(movieClip);
movieClip.onEnterFrame = function() {
m -=x;
x = Math.round(x*0.8);
if (m<0) {
delete movieClip.onEnterFrame;
} else {
couleur.setBrightOffset(m);
}
};
}
}
Инициализация класса:
newFlashDownObject = new FlashDown(mc,255,50);
И че все MovieClip экстендят? ;-)
Можнож просто class определить, который ничего не "extends"
Мне кажется не нужен тут MovieClip
Да, и если это работает (я сам не проверял, но наверное же должно работать?) откуда в onEnterFrame берется m и x? Это же вроде параметры другой функции и они не действительны когда вызывается onEnterFrame... Или у меня какое то глобальное недопонимание?
глянь (http://www.flasher.ru/forum/showthread.php?threadid=57193&highlight=%E0%F0%E3%F3%EC%E5%ED%F2%FB)
2 silin: Спасибо, примерно понятно
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.