Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   360 градусов вращение (http://www.flasher.ru/forum/showthread.php?t=105630)

ludankov 20.12.2007 15:57

Все отлично только мувик все равно берет значение положения курсора и перепрыгивает. А нужно как то сохранить текущий кадр и прибавлять к нему то число которое в вашем коде получается. Может нужно ввести еще одну пременную, которая выводит текущий номер кадра и ввести ее в рассчет. То есть прибавлять как раз к ней. Спасибо. Пиво за мной.

Fernando Costa 20.12.2007 16:09

Код:

var abbleToDrag:Boolean = false
var currentClickX:Number = 0;
var lastClickReleaseX:Number = 0;

_root.onMouseDown = function(){
    abbleToDrag=true
    currentClickX = Math.floor(_xmouse)
}
_root.onMouseUp = function(){
    abbleToDrag=false
    lastClickReleaseX = Math.floor(_xmouse)
}

_root.onMouseMove = function(){
if(abbleToDrag)
mc.gotoAndStop(-currentClickX + Math.floor(_xmouse) + lastClickReleaseX  )
}


ludankov 20.12.2007 16:19

Вот так работает
Код:

stop();
var abbleToDrag:Boolean = false
var currentClickX:Number = 0;

_root.onMouseDown = function(){
    abbleToDrag=true
    currentClickX = Math.floor(_xmouse)
}
_root.onMouseUp = function(){
    abbleToDrag=false
    }

_root.onMouseMove = function(){
if(abbleToDrag)
mc.gotoAndStop((-currentClickX + Math.floor(_xmouse))+ mc._currentframe)
}

Только почему то не по всей площади окна. Если у вас так же напишите может этот глюк совсем не из-за кода. Еще раз спасибо за помощь.

Fernando Costa 20.12.2007 16:59

я не могу протестировать, у меня нет мувика со столькими кадрами, приаатачьте исходник - поковыряюсь

ludankov 20.12.2007 17:18

Код:

stop();
var abbleToDrag:Boolean = false
var currentClickX:Number = 0;

_root.onMouseDown = function(){
    abbleToDrag=true
    currentClickX = Math.floor(_xmouse)
}
_root.onMouseUp = function(){
    abbleToDrag=false
    }

_root.onMouseMove = function(){
if(abbleToDrag)
mc.gotoAndStop(((-currentClickX + Math.floor(_xmouse))/10)+ mc._currentframe)
}

Данный код построен на отношении кадр - пиксель. Размер документа 720 х 576px, кол-во кадров 360. Приходится делить полученное число в коде на 10 и более, чтобы диапазон вращения мышкой был достаточно большим, а не на 10% длины окна. При этом выполнение кода происходит очень медленно и все тормозит. Подскажите плиз как оптимизировать этот код. Я бы скинул сам файл только он весит почти 2 mb. Прикрепить такой файл тут нельзя. Могу конечно выслать на электронку, если для вас не геморно.
Да чуть не забыл может подскажите как сделать чтобы мувик не останавливался на последнем кадре а проигрывался циклично, когда его крутят мышкой.

Fernando Costa 20.12.2007 17:32

Конечно будет тормозить - столько фоток скроллить.
Можно попробовать заменить onMouseMove на onEnterFrame.

у вас размер документа как раз больше кол-ва кадров в 2 раза - очень удобно с ним работать

ludankov 20.12.2007 18:04

Извиняюсь не прав если делить на 10 вообще не так как надо работает. Дело не в кол-ве кадров. Если не делить все очень быстро работает. Просто надо придумать как по-другому увеличить дипазон для курсора. Чтобы можно было таскать более точно. Сейчас получается что весь ролик прокручивается если провести мышкой приблизительно 1/10 длины документа, а хотелось бы чтоб проигрался когда проводищь мышкой от края до края.
Не могли бы вы скинуть пример кода как это реализовать на onEnterFrame.

Fernando Costa 20.12.2007 18:11

Код:

mc.gotoAndStop((-currentClickX + Math.floor(_xmouse)+ lastClickReleaseX)/2)
- этого не достаточно?

ludankov 20.12.2007 18:26

Так он перескакивает. Сами посчитайте вы задаете число - кол-во пикселей на которое сместилась мышка прибавляем число текущего кадра и делим все это на два. Пример в цифрах: Клип находится на 170 кадре нам надо прокрутить его на 20 кадров, значит мы должны оказаться на 190 кадре. А что получается у нас 170(текущий кадр)+ 40(1кадр-2пикселя)/2=105. Мы не только не прибавляем кадров, а отскакиваем назад. Давайте я скину вам проект сами увидете.

Fernando Costa 20.12.2007 18:30

мейл в личке


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

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