AlexCooper
13.02.2009, 23:02
Здравствуйте.
Возникла проблема с внешним прелоадером, а именно нужна альтернатива "_роот", так как по недавнему совету для работоспособности кода ( в подгружаемом клипе) "_роот" просто напросто удаляем и плеер автоматически ищет "_роот" своего клипа и, все работает - кроме 1 функции, где путь не указать не возможно. Вот она
antiLag=function(cX:Number,cY:Number,object:String,link:String)
{
delete _root[link][object].onEnterFrame;
if (_root[link][object].mX!=_root[link][object]._x)
_root[link][object].mX=(cX-_root[link][object]._x)/3;
if (_root[link][object].mY!=_root[link][object]._y)
_root[link][object].mY=(cY-_root[link][object]._y)/3;
_root[link][object].mStep=0;
if (Math.abs(_root[link][object].mX)>=0.5 || Math.abs(_root[link][object].mY)>=0.5)
{
if (link=='map')
{
_root[link][object].onEnterFrame=function()
{
this.mStep++;
if (this.mStep>2) delete this.onEnterFrame;
special_items['mess'+this._name]._x=
map[this._name]._x+=map[this._name].mX;
special_items['mess'+this._name]._y=
map[this._name]._y+=map[this._name].mY;
this.xx=special_items['mess'+this._name]._x;
if (this.xx!=undefined)
{
this.yy=special_items['mess'+this._name]._y;
if (this.xx>=400) this.xc=1; else this.xc=0;
if (this.yy>=200) this.yc=1; else this.yc=0;
if (this.xc==1)
{
special_items['mess'+this._name].vis.gotoAndStop(3);
special_items['mess'+this._name]._x-=161;
} else
{
special_items['mess'+this._name].vis.gotoAndStop(1);
}
if (this.yc==0)
{
special_items['mess'+this._name]._y+=100;
special_items['mess'+this._name].vis.gotoAndStop(special_items['mess'+this._name].vis._currentframe+1);
}
}
if (this.cur==16) this.cur=1; else
this.cur=map[this._name].persone.c2._currentframe+1;
map[this._name].persone.c2.gotoAndStop(this.cur);
}
}
if (link=='upMap')
{
_root[link][object].onEnterFrame=function()
{
this.mStep++;
if (this.mStep>2) delete this.onEnterFrame;
upMap[this._name]._x+=upMap[this._name].mX;
upMap[this._name]._y+=upMap[this._name].mY;
if (this._name=='celling') upMap[this._name]._rotation+=6;
}
}
}
}
Да, можно конечно же прописать путь _роот['клип_контейнер_в_прелоадере']['нужный_объект'] но это очень не удобно при разработке, так как тест придётся проводить постоянно с прелоадером и редактировать постоянно не хочется. Подскажите пожалуйста как можно доставать без проблем с использованием адресации.
Буду признателен за любую полезную информацию.
Возникла проблема с внешним прелоадером, а именно нужна альтернатива "_роот", так как по недавнему совету для работоспособности кода ( в подгружаемом клипе) "_роот" просто напросто удаляем и плеер автоматически ищет "_роот" своего клипа и, все работает - кроме 1 функции, где путь не указать не возможно. Вот она
antiLag=function(cX:Number,cY:Number,object:String,link:String)
{
delete _root[link][object].onEnterFrame;
if (_root[link][object].mX!=_root[link][object]._x)
_root[link][object].mX=(cX-_root[link][object]._x)/3;
if (_root[link][object].mY!=_root[link][object]._y)
_root[link][object].mY=(cY-_root[link][object]._y)/3;
_root[link][object].mStep=0;
if (Math.abs(_root[link][object].mX)>=0.5 || Math.abs(_root[link][object].mY)>=0.5)
{
if (link=='map')
{
_root[link][object].onEnterFrame=function()
{
this.mStep++;
if (this.mStep>2) delete this.onEnterFrame;
special_items['mess'+this._name]._x=
map[this._name]._x+=map[this._name].mX;
special_items['mess'+this._name]._y=
map[this._name]._y+=map[this._name].mY;
this.xx=special_items['mess'+this._name]._x;
if (this.xx!=undefined)
{
this.yy=special_items['mess'+this._name]._y;
if (this.xx>=400) this.xc=1; else this.xc=0;
if (this.yy>=200) this.yc=1; else this.yc=0;
if (this.xc==1)
{
special_items['mess'+this._name].vis.gotoAndStop(3);
special_items['mess'+this._name]._x-=161;
} else
{
special_items['mess'+this._name].vis.gotoAndStop(1);
}
if (this.yc==0)
{
special_items['mess'+this._name]._y+=100;
special_items['mess'+this._name].vis.gotoAndStop(special_items['mess'+this._name].vis._currentframe+1);
}
}
if (this.cur==16) this.cur=1; else
this.cur=map[this._name].persone.c2._currentframe+1;
map[this._name].persone.c2.gotoAndStop(this.cur);
}
}
if (link=='upMap')
{
_root[link][object].onEnterFrame=function()
{
this.mStep++;
if (this.mStep>2) delete this.onEnterFrame;
upMap[this._name]._x+=upMap[this._name].mX;
upMap[this._name]._y+=upMap[this._name].mY;
if (this._name=='celling') upMap[this._name]._rotation+=6;
}
}
}
}
Да, можно конечно же прописать путь _роот['клип_контейнер_в_прелоадере']['нужный_объект'] но это очень не удобно при разработке, так как тест придётся проводить постоянно с прелоадером и редактировать постоянно не хочется. Подскажите пожалуйста как можно доставать без проблем с использованием адресации.
Буду признателен за любую полезную информацию.