Форум 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=117629)

battrack 31.10.2008 18:43

Вертикальная прокрутка текста (клипа)
 
Необходимо сделать чтобы при нажатии на кнопку клип (в данном случае текст) прокручивался по вертикали. Грубо говоря, по событию нажатия на кнопку нужно двигать клип по _y

Делаю следующим образом:

Код:

button.onPress=function () {
  while (myClip._y<500) { // двигаем до координаты y=500
        myClip._y++
  }
}

выявляются две проблемы:
1. Клип двигается слишком быстро. Мгновенно. Конечно можно было бы это исправить заменив приращение координаты не на 1, а например на 0,001, но дело в том что менее чем на 0,5 координату изменять нельзя, иначе код не работает. Об этом и в документации говорится. Так как быть? Может в нутри этого цикла как-то поставить задержку? Подскажите.

2. onPress - это событие нажатия. Оно произошло и все. А мне нужно чтобы событие происходило по "УДЕРЖАНИИ" кнопки, или в крайнем случае при наведении. Т.е. прокрутка текста осущесвляется при нажатии и удержании кнопки. Какой обработчик использовать?

Заранее спасибо!

Division 31.10.2008 18:55

Можно двигать в onEnterFrame. Например, при нажатии мыши (onMouseDown + hitTest я бы делал) ставить какой-то флаг в true. в onEnterFrame смотреть на этот флаг и если он true, двигать клип. onMouseUp - ставить флаг в false.

scarbo 31.10.2008 21:15

Цитата:

Можно двигать в onEnterFrame. Например, при нажатии мыши (onMouseDown + hitTest я бы делал) ставить какой-то флаг в true. в onEnterFrame смотреть на этот флаг и если он true, двигать клип. onMouseUp - ставить флаг в false.
Ага и onEnterFrame все время крутиться,пока не закрыли флешку,очень полезно для процессора.:rtfm:

Wolsh 01.11.2008 00:31

1. Клип будет двигаться мгновенно, даже если "разрешат" ставить 0.000000000006 и Вы этим воспользуетесь. Почему? Потому что выполнение кода происходит ДО перерисовки графики кадра. Т.е. сначала отрабатывает Ваш цикл while, в конце которого значение y становится больше/меньше исходного, потом перерисовывается кадр, и клип отрисовывается в новом месте. Мгновенно!
2. onPress - событие нажатие, а onRelease - событие отпускания. Что сложного?

Код:

scroll_down.onPress = function(){
    this.onEnterFrame = function(){
        content_mc._y+=SCROLL_STEP;
    }
}
scroll_down.onRelease = function(){
    delete this.onEnterFrame;
    }
}

как-то так.

Division 01.11.2008 02:07

Цитата:

Ага и onEnterFrame все время крутиться,пока не закрыли флешку
Я бы не придавал этому особого значения

scarbo 01.11.2008 11:17

Цитата:

Я бы не придавал этому особого значения
А зря,так в проекте несколько таких EnterFramов бесконечных и флешке крышка

Division 01.11.2008 14:36

scarbo, можно пример где несколько enterFrame ложат флешку? Желательно не отходить от темы этого топика и не считать в enterFrame 200 корней квадрытных (:


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

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