Показать сообщение отдельно
Старый 10.09.2003, 11:57
major вне форума Посмотреть профиль Отправить личное сообщение для major Найти все сообщения от major
  № 14  
major
 
Аватар для major

Регистрация: Jul 2003
Адрес: SPb
Сообщений: 125
2Пушистик
Цитата:
через прототипы проц напрегается намного меньше чем когда ты делаешь через цикл!
Ну, раз пошла такая пьянка...
Тот копеечный выигрыш, который Вы получите за счет использования прототяпа, будет сразу же сьеден тем, что в обработчике используется if и строковая функция. Если же в фильме есть еще и другие клипы (а они наверняка есть), то обработчик, установленный через прототип, будет вызываться и для них. А значит ресурсы проца будут в пустую растрачиваться на обработку строковых ф-ций и if-ов.

В качестве конструктива: вариант2

function forout() { // onRollOut
this.dx=0;
this.dy=0;
};
function fop() { // onPress
trace(this._name+" Press event!");
this.dx=0;
this.dy=0;
};
function forover() { // onRollOver
var k=-1+2*Math.random();
this.dx=5*k/Math.abs(k);
var k=-1+2*Math.random();
this.dy=5*k/Math.abs(k);
};
function forenter(){ // onEnterFrame
this._x+=this.dx;
this._y+=this.dy;
};

_root.createEmptyMovieClip("sq1", 1);
with (_root.sq1) {
beginFill(0xff0000, 100);
lineStyle(0, 0xFFFF00, 100);
moveTo(50,100);
lineTo(70,100);
lineTo(70,120);
lineTo(50,120);
lineTo(50, 100);
endFill();
}
_root["sq1"].onPress=fop;
_root["sq1"].onRollOut=forout;
_root["sq1"].onRollOver=forover;
_root["sq1"].onEnterFrame=forenter;

for (i=2; i<=10; i++) {
// V V V вот оно !!! V V V
sq1.duplicateMovieClip( "sq"+i, i,sq1);
_root["sq"+i]._x=random(400);
_root["sq"+i]._y=random(400);
}
stop();