![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
wanted
Регистрация: Sep 2002
Сообщений: 1,737
|
а почему?
или ты меня так изящно послал с моими дурацкими вопросами? круто звучит: "скажу те по секрету charAt(0)..." почти что: "эй, приятель, твоя просьба меня near bird". ![]()
__________________
вот тебе, революционный единоличник! вот тебе кулачество! вот тебе Союзкиножурнал! |
|
|||||
|
Регистрация: Jul 2003
Адрес: SPb
Сообщений: 125
|
Пушистик, что-то я не понял, а зачем заморачиваться с прототипом. После этого мне нельзя называть клипы начиная с s.
Не проще-ли: 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(); } for (i=2; i<=10; i++) { duplicateMovieClip("sq1", "sq"+i, i); _root["sq"+i]._x=random(400); _root["sq"+i]._y=random(400); } for(i=1;i<=10;i++){ // назначение обработчиков событий _root["sq"+i].onPress=fop; _root["sq"+i].onRollOut=forout; _root["sq"+i].onRollOver=forover; _root["sq"+i].onEnterFrame=forenter; } stop(); |
|
|||||
|
Bumble Bee
[+1 05.07.06]
|
ну кому как чегче...
через прототипы проц напрегается намного меньше чем когда ты делаешь через цикл!...Цитата:
_root.createEmptyMovieClip("square1", 1);
with (_root.square1) {
beginFill(0x000000, 100);
lineStyle(0, 0xFFFF00, 100);
moveTo(50, 100);
lineTo(70, 100);
lineTo(70, 120);
lineTo(50, 120);
lineTo(50, 100);
endFill();
}
for (i=2; i<=10; i++) {
duplicateMovieClip("square1", "square"+i, i);
_root["square"+i]._x = random(400);
_root["square"+i]._y = random(400);
}
MovieClip.prototype.onRollOver = function() {
randx = this._x-random(50)+50;
randy = this._y-random(50)+50;
if (this._name.substring(0,6)== "square") {
this.onEnterFrame = function() {
this._x+=(randx-this._x)/10;
this._y+=(randy-this._y)/10;
};
}
};
__________________
Portfolio |
|
|||||
|
Регистрация: 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(); |
|
|||||
|
wanted
Регистрация: Sep 2002
Сообщений: 1,737
|
2 major последний вариант - очень хороший
2 Пушистый не обижась, дружище! согласись, твои варианты слабы. у тебя получилось, как в пословице: "как поймать 4 льва? поймать 10 и 6 выпустить" и прототипы тут явно не к месту были.
__________________
вот тебе, революционный единоличник! вот тебе кулачество! вот тебе Союзкиножурнал! |
![]() |
Часовой пояс GMT +4, время: 09:30. |
|
|
« Предыдущая тема | Следующая тема » |
|
|