Просмотр полной версии : Вопрос...
А как написать на экшенскрипте чтобы точки в рандомном порядке бегали за курсором???
так потянет?
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()}
:)
если ты думаешь, что это здравая мысль, то ответь на вопрос:
- зачем в каждом мувике создавать обработку события onEnterFrame, если это можно сделать однажды в прототипе класса?
- или это любителям усложнять жизнь? :p
если ты так ненавидишь ООП, то хотябы так:
_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
если ты так ненавидишь ООП, то хотябы так:
ООП я люблю, но большенство его ненавидят, по-этому непоймут как это делается :)
и я как-то проворонил, но класть функцию в _global не комильфо.
а уж тем более не закрыть ее при этом от обхода с помощью ASSetPropFlags - это верный способ нажить багов в for...in... циклах.
При этом совсем непонятно, зачем она в _global, если достаточно прописать один раз в руте или в мувике, который все эти точки будет содержать.
ведь из контекста понятно, что две мышки не будут сосуществовать на одном компе и соответственно никаких дублирований групп точек в других местах не предполагается.
в твоём варианте и в моём потребляемось ресурсов компьютера одинакова
оба варианта, как родной, так и исправленный твой потребляют меньше ресурсов за счет отсутствия дублирования функции onEnterFrame.
и в первом и во втором случае имеется только один ее экземпляр.
в родном он лежит в прототипе класса,
в исправленном в руте.
мувики лишь имеют линк на эту функцию.
в твоем случае этих функций 20 штук.
Techmaker
09.07.2003, 19:46
ладно, ладно :)
пусть будет прототип, только успокойся :p :p :p
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.