![]() |
Управление свойством _x
Проблема заключается в следующем: есть какой-то обьект с _х координатой. При нажатии на кнопке значение _х должно плюсоваться или минусоваться, в зависимости от выбранного направления (<< >>). Движение должно быть плавным, т.е. постепенный разгон с места и так же торможение.
Как я себе представлял решение этой задачи: есть какая-то переменная, пусть будет "а". При нажатии на кнопке значение этой переменной плюсуется (допустим становиться равным 100). Запускается цикл в виде: Код:
while (a >= 0){Вобщем я надеюсь вы поняли мою проблему, поэтому если кто-то сталкивался с этим, то помогите мне пожалуйста! Или скажите где можно найти ответ на вопрос, я, честно говоря, уже замучился искать. Спасибо за то, что прочитали пост! |
следует понять логику флеша: сначала выполняется весь код на кадре, затем кадр отображается. Чтобы делать изменение координаты можно либо использовать обработчик onEnterFrame - вызов с частотой смены кадров, либо setInterval + updateAfterEvent - если не хочется зависеть от частоты кадров флешки.
Пример кода: Код:
var a:Number = 100; |
peresmeshnik, отредактируйте свой пост и оформите код тегами [code][/code].
|
Спасибо, попробую сделать так. Только не понимаю, что означает вот эта часть:
Код:
else{ |
удаляет обработчик onEnterFrame созданный ранее
|
Тогда получается, что если не удалять обработчик onEnterFrame и временная шкала будет на фрейме, в котором написан этот скрипт - то он будет постоянно выполняться?
|
он будет выполнятся то того пока ты его не удалишь, а где в это время шакала будет никого неволнует
|
для ускорения пробуй добавлять не "1", а какую-нить переменную inc в зависимости от положения мувика, напр:
inc = this._x - 250; чем дальше будет уезжать мувик, тем больше будет inc.... можно еще сделать его в квадрате... PS: можно this._x - 250 еще не на что-нить поделить, чтобы inc изменялся (например) от 0 до 3.... тогда используя его в квадрате получаем диапазон от 0 до 6 (причем парабола) |
ну или можно при ускарении назначать начальную скорость
а потом просто её умножать на 1,1:)) при торможении на 0,9 тоесть так Код:
Vx=Vx*1.1 |
Цитата:
|
| Часовой пояс GMT +4, время: 16:53. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.