Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Вопрос... (http://www.flasher.ru/forum/showthread.php?t=46507)

egievs 06.07.2003 14:15

Вопрос...
 
А как написать на экшенскрипте чтобы точки в рандомном порядке бегали за курсором???

Iv 08.07.2003 23:16

так потянет?
Код:

Stage.align = "TL"
Stage.scaleMode = "noscale"
pointClass = function () {
};
tmp = pointClass.prototype=new MovieClip();
tmp.init = function() {
this._x = random(Stage.width);
this._y = random(Stage.height);
};
tmp.onEnterFrame = function() {
this._x += this.st_x = (this.st_x += (this._parent._xmouse-this._x)/200)*.95;
this._y += this.st_y = (this.st_y += (this._parent._ymouse-this._y)/200)*.95;
if (random(100)<2) {
this.init();
}
};
//
createPoint = function () {
var mc = _root.createEmptyMovieClip("mc"+d++, d);
mc.lineStyle(2, 0, 100);
mc.lineTo(.2, 0);
mc.__proto__ = pointClass.prototype;
mc.init();
};
for (i=0; i<20; i++) {
_root.createPoint();
}


Techmaker 09.07.2003 16:06

любители усложнять жизьнь :)

Techmaker 09.07.2003 16:27

Код:

_global.createPoint=function(){with(this){
MC=createEmptyMovieClip("mc"+_global.d++,d)
MC.lineStyle(2,0x000000,100);MC.lineTo(.2,0)
MC._x=random(Stage.width)
MC._y=random(Stage.height)
MC.onEnterFrame=function(){
this._x+=this.st_x=(this.st_x+(_root._xmouse-this._x)/200)*.95;
this._y+=this.st_y=(this.st_y+(_root._ymouse-this._y)/200)*.95;
if(random(100)<2){
this._x=random(Stage.width)
this._y=random(Stage.height)}}}}
//
for(i=0;i<20;i++){createPoint()}

:)

Iv 09.07.2003 17:05

если ты думаешь, что это здравая мысль, то ответь на вопрос:
- зачем в каждом мувике создавать обработку события onEnterFrame, если это можно сделать однажды в прототипе класса?

- или это любителям усложнять жизнь? :p

Iv 09.07.2003 17:09

если ты так ненавидишь ООП, то хотябы так:
Код:

_root.onPointEnterFrame = function() {
this._x += this.st_x=(this.st_x+(_root._xmouse-this._x)/200)*.95;
this._y += this.st_y=(this.st_y+(_root._ymouse-this._y)/200)*.95;
if (random(100)<2) {
this._x = random(Stage.width);
this._y = random(Stage.height);
}
};
_global.createPoint = function() {
with (this) {
MC = createEmptyMovieClip("mc"+_global.d++, d);
MC.lineStyle(2, 0x000000, 100);
MC.lineTo(.2, 0);
MC._x = random(Stage.width);
MC._y = random(Stage.height);
MC.onEnterFrame = _root.onPointEnterFrame;
}
};
//
for (i=0; i<20; i++) {
createPoint();
}


Techmaker 09.07.2003 17:42

Цитата:

- зачем в каждом мувике создавать обработку события onEnterFrame, если это можно сделать однажды в прототипе класса?
в твоём варианте и в моём потребляемось ресурсов компьютера одинакова :)
а писать и понимать сложнее :p
Цитата:

если ты так ненавидишь ООП, то хотябы так:
ООП я люблю, но большенство его ненавидят, по-этому непоймут как это делается :)

Iv 09.07.2003 17:52

и я как-то проворонил, но класть функцию в _global не комильфо.

а уж тем более не закрыть ее при этом от обхода с помощью ASSetPropFlags - это верный способ нажить багов в for...in... циклах.

При этом совсем непонятно, зачем она в _global, если достаточно прописать один раз в руте или в мувике, который все эти точки будет содержать.

ведь из контекста понятно, что две мышки не будут сосуществовать на одном компе и соответственно никаких дублирований групп точек в других местах не предполагается.

Iv 09.07.2003 17:56

Цитата:

в твоём варианте и в моём потребляемось ресурсов компьютера одинакова
оба варианта, как родной, так и исправленный твой потребляют меньше ресурсов за счет отсутствия дублирования функции onEnterFrame.
и в первом и во втором случае имеется только один ее экземпляр.
в родном он лежит в прототипе класса,
в исправленном в руте.

мувики лишь имеют линк на эту функцию.

в твоем случае этих функций 20 штук.

Techmaker 09.07.2003 19:46

гы :)
 
ладно, ладно :)
пусть будет прототип, только успокойся :p :p :p


Часовой пояс GMT +4, время: 11:45.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.