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();