PDA

Просмотр полной версии : проблема с вращением клипа


sart
12.10.2006, 05:09
this.onMouseMove = function() {
var ang = Math.floor( Math.atan( this._xmouse/this._ymouse )*(180/Math.PI) );

_root.txt.text = "rotation: " + this._rotation + "\n" +
"angle:" + ang + "\n" +
"x: " + this._xmouse + "\n" +
"y: " + this._ymouse;

this._rotation = ang;
}
пытаюсь вращать некий клип всегда на мышку - в строке расчета угла каким-то раком меняются this._xmouse и this._ymouse =((
в чем трабла??

Dendroid
12.10.2006, 05:42
Всё в мире относительно, тем более координаты мышки повернутого клипа, она же не вращается вместе с клипом... ;)
Лучше так:
this.onMouseMove = function() {
var ang = Math.floor( Math.atan2( _parent._ymouse-this._y,_parent._xmouse-this._x )*(180/Math.PI) );
this._rotation = ang;
updateAfterEvent();
}

sart
12.10.2006, 05:53
эээ...
1. а причем тут вообще парент? у меня клип лежит сразу на сцене.
2. а что такое тогда this._xmouse и this._ymouse ??
3. попробывал - не работает =)

Dendroid
12.10.2006, 06:03
1. Там координаты мыши не зависят от this._rotation, неважно где лежит.
2. Координаты мыши внутри клипа.
3. Пробуй лучше.
Вот полный код, повесь на любой клип:
onClipEvent (load) {
this.onMouseMove = function() {
var ang = Math.floor(Math.atan2(_parent._ymouse-this._y, _parent._xmouse-this._x)*(180/Math.PI));
this._rotation = ang;
updateAfterEvent();
};
}

Главное, не пытаться вращать _root ;)

sart
12.10.2006, 06:12
второй код работает (правда на 90градусов меньше чем надо)
на тему _xmouse и _ymouse понял =)
рут вращать не буду =))
в общем, сенькс =)

Dendroid
12.10.2006, 06:22
"this._rotation = ang+90;" либо поверни весь контент в клипе :)
Пожалуйста.

sart
12.10.2006, 06:39
до +90 додумался и сам =))