PDA

Просмотр полной версии : Срочно... Нужна помощь !!!!


jSAN
23.02.2004, 10:34
Есть MovieClip. Нужно сделать так что бы при нажатии на нем мышой, было так: тянем мышу вверх - он крутится по часовой стрелке, тянем вниз - против. (при нажатой мыше, отпускаем кнопку на мыше (в любом месте) и все повороты заканчиваются)...

silin
23.02.2004, 18:07
получай

silin
23.02.2004, 18:13
пардон, недочитал, вот то что просили
(первый тоже крутится только при нажатии везде, а не на самом муве)

Штрек
23.02.2004, 18:59
silin - не знаю, как у тебя, а я набросал такой прототипчик:

MovieClip.prototype.test = function() {
n = 1;
this.onMouseMove = function() {
y2 = _root._ymouse;
};
this.onRollOver = function() {
this.onMouseDown = function() {
this.onEnterFrame = function() {
n *= -1;
if (n>0) {
y1 = _root._ymouse;
}
if ((y2-y1)>0) {
this._rotation += 30;
}
if ((y2-y1)<0) {
this._rotation += -30;
}
if ((y2-y1) == 0) {
this._rotation += 0;
}
};
this.onDragOut = function() {
delete this.onEnterFrame;
delete this.onMouseDown;
};
};
this.onMouseUp = function() {
delete this.onEnterFrame;
delete this.onMouseDown;
};
};
};
mc.test();//mc - крутящ.мувик.

silin
23.02.2004, 19:20
2Штрек: ты, как обычно, прав - тока проще надо быть
MovieClip.prototype.crut_vert=function(){
this.onPress = function() {
pressed = 1;
};
this.onRelease = this.onReleaseOutside =function() {
dir =pressed = 0;
};
this.onMouseMove = function() {
if (pressed) { dir = (y-_ymouse); }
y = _ymouse;
};
this.onEnterFrame = function() {
this._rotation += dir;
};
}
mc.crut_vert();

Штрек
23.02.2004, 19:30
Проще не всегда правильно!
У тебя при остановке мыши крутёж продолжается,
что не есть строгое решение задачки.
Если прикинуть - зачем задачка, то я так понимаю - повращать мышом предмет, закреплённый в одной точке. ;)

Штрек
23.02.2004, 19:35
Ещё досмотрел - у тебя при onDragOut -
крутёж продолжается. ;)

silin
23.02.2004, 19:38
да ладно придираться, просили же идею, а без выключения по onDragOut даже прикольнее :p

Штрек
23.02.2004, 19:44
Оригинал написал(а) silin
да ладно придираться, просили же идею, а без выключения по onDragOut даже прикольнее :p
Мож и прикольней, но не ЖИЗНЕННО. :p

silin
23.02.2004, 20:11
разрешите доложить: все замеченные недоделки устранены
MovieClip.prototype.crut_vert=function(){
this.onPress = function() {
y=_ymouse;
this.onEnterFrame = function() {
dir = (y-_ymouse);
y = _ymouse;
this._rotation += dir/10;//по вкусу
}
};
this.onDragOut=this.onRelease = this.onReleaseOutside =function() { delete this.onEnterFrame;};

}
mc.crut_vert();

Штрек
23.02.2004, 20:27
Есть один, но существенный, недостаток -
если onPress - делать не по центру мувика, а например
рядом с нижним краем, то попробуй ка покрути. :p

silin
23.02.2004, 20:31
ну добавим тада onDragOver
MovieClip.prototype.crut_vert=function(){
this.onDragOver=this.onPress = function() {
y=_ymouse;
this.onEnterFrame = function() {
dir = (y-_ymouse);
y = _ymouse;
this._rotation += dir/10;//по вкусу
}
};
this.onDragOut=this.onRelease = this.onReleaseOutside =function() { delete this.onEnterFrame;};

}
mc.crut_vert();

Штрек
23.02.2004, 20:41
Ну чего тут скажешь - мастер! :p
Не всем же быть такими умными.
Подтянемся :D

silin
23.02.2004, 20:44
горжусь Вашей похвалой

jSAN
25.02.2004, 01:38
Ну вы блин даете... Я вот ночь посидел и утром придумал... криво но работает!

onClipEvent (mouseMove)
{
if (_root.qq.pushed == 1)
{
if (_root.qq.y_poz>_root._ymouse)
{
_root.qq._rotation+=3;
_root.qq.y_poz = _root._ymouse;
_root.disp = _root.qq.y_poz;
}
}
}
//---------------------
onClipEvent (mouseUp)
{
_root.qq.pushed = 0;
}

qq (MovieClip) внутри него кнопка. при нажатии присваеваем pushed = 1, а в action на мувике сами видите.