Форум 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)
-   -   "Проехаться" по таймлайну. (http://www.flasher.ru/forum/showthread.php?t=66330)

Seraf 04.08.2006 20:49

To mart.in
А в вашем случае возможно ускорение перемотки в зависимости от курсора? Я был бы очень благодарен за весь скрипт. Только начинаю программировать и сразу поставили такую сложную задачу:(

mart.in 07.08.2006 07:23

to Seraf: конечно возможно!!! я же говорил что в той структуре, что я приводил, внутри onEnterFrame, где происходит перемотка this.gotoAndStop(fr+N), вычисляешь N пропорционально удаленности его от центра. Т.е. если мувик шириной 550 px, то N =(_root._xmouse-275)*k, здесь k - это какой-нить коэффициент. Т.к., если мышка будет в краю сцены, то за один шаг (onEnterFrame) будет мотаться сразу 275 кадров, в данном случае мувика mc, а это слишком много, поэтому k нужно сделать меньше 1. Можно просто поделить, например: N =(_root._xmouse-275)/25, ну и надо округлить все это дело либо оставить только целую часть: N =Math.ceil((_root._xmouse-275)/25), т.к. gotoAndStop мотает только на целые кадры :))))
Код:

mc.stop();
MovieClip.prototype.dv_fr = function(){
this.onEnterFrame = function(){
var fr = this._currentframe;
var N =Math.ceil((_root._xmouse-275)/25);// добавилась только эта строка
this.gotoAndStop(fr+N);
}
}
mc.onMouseDown = dv_fr;
mc.onMouseUp = function() {
delete this.onEnterFrame;
}

Блин... в коде который я приводил надо было дописать всего одну строку, а ты не можешь разобраться?!?!?

mart.in 07.08.2006 09:38

Но только это все равно сырой вариант. Тут нужны будут доработки. Есть главный недостаток: мувик может не "прокрутиться" до конца. Скажем мувик 500 кадров. Ты зажал мышку (не двигая) справа от центра сцены, и N, например, стало равным 75. А так как 500 на 75 не делится, он домотает до 450 кадра и остановится, потому что он не сможет прибавить 75 кадров, когда осталось всего 50. Короче, все в том же onEnterFrame нужно сделать проверку оставшихся до конца кадров (this._totalframes-this.currentframe) с числом N, и когда N станет больше - уравнять его....

Seraf 07.08.2006 13:17

Спосибо, так гораздо доступнее

Seraf 07.08.2006 14:04

Вложений: 2
mart.in
Вот посмотри что у меня вышло ...Во первых пришлось ломать голову расставляя кадры так чтобы мув получился цикличным (а надо ваще 12 кадров) и опять же...в твоём примере мув статичен и двигается только когда я зажимаю кнопу и начинаю двигать мышь. От меня же требуется, чтобы наоборот мув сам двигался и просто менялось направлене и скорость в зависимости от положения курсора А ПРИ НАЖАТИИ на 1 из менюшек он ОСТАНОВИЛСЯ.
То что в моём примере идеально подходит всё что нужно это остановить функцию при нажатии/наведении на одну из кнопок. Давай уже добъём это дело :away:

mart.in 08.08.2006 08:26

Ну теперь ты меня вообще удивил. Даже не знаю что сказать. Проблема в том, что топ называется "проехаться по таймлайну". А в твоем случае нужно по тамлайну проезжаться-то??? как сначала все пытались A-G объяснить, что загнать надо все в один мув и двигать его по сцене.

mart.in 08.08.2006 08:35

Ты в своем примере так и делаешь, но путем циклическим переходом на первый кадр, где и выполняется скрипт. Это устаревший подход. Уже давно создано событие onEnterFrame. Короче пока сам не разберешся с onEnterFrame, дальше помогать не буду :)

www.capcipa.ru 18.08.2006 07:09

Цитата:

Сообщение от mart.in
Ты в своем примере так и делаешь, но путем циклическим переходом на первый кадр, где и выполняется скрипт. Это устаревший подход. Уже давно создано событие onEnterFrame. Короче пока сам не разберешся с onEnterFrame, дальше помогать не буду :)

где можно скачать это событие?


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

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