Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Поворот обьекта в определенную позицию (http://www.flasher.ru/forum/showthread.php?t=200312)

adnreuaa 02.06.2013 00:39

Поворот обьекта в определенную позицию
 
Вложений: 1
Здравствуйте! Собственно такая ситуация, во флеше недавно только начал работать, сижу уже пол дня ламаю голову над задачей. Нужно сделать чтобы фигура, назовем "диск", при вводе числа от 1 до 40 (всего 40 позиций) поворачивалась в определенную позицию...Прикрепляю анимацию в архиве (так как с управлением не добавляет), что на данный момент у меня получилось (работает только для "1" и "2" и то коряво, при значении "1" не проворачивается, потому что это исходная позиция).
Создал анимацию движения для каждого поворота (1-2, 2-3 и т.д.) и вот:
Код AS3:

import flash.events.MouseEvent;
stop();
//numbertool.maxChars = 2;
submit.label = "Submit";
submit.addEventListener (MouseEvent.CLICK, namesubmit);
function namesubmit (event:MouseEvent):void{
        if (nubmertool.text = "2") {
                gotoAndPlay (10)}

Вложение 29612

samana 02.06.2013 11:19

Во-первых у вас в проверке идёт присваивание, а не проверка на равенство. Нужны два знака равно ==
И не совсем понятна реализация поворота, почему идут переходы по кадрам, а не изменение поворота (rotation) объекта?

adnreuaa 02.06.2013 21:28

Спасибо! Еще один вопрос: для того чтобы реагировало на числа от 1 до 40, нужно создать цепочку операторов
Код AS3:

if

, по типу:
Код AS3:

 if (nubmertool.text == "2") {
                ins.rotation=...
                      } else if (nubmertool.text == "3") {
                ins.rotation=...
                      } else if .....

и так далее?

maincode 02.06.2013 21:42

Если поворот от 0 до 360 то:
Код AS3:

var step:int = int(nubmertool.text);
var percent:Number = step/40;
ins.rotation = Math.floor(percent*360);

Если поворот в определенном диапозоне:
Код AS3:

var step:int = int(nubmertool.text);
var percent:Number = step/40;
//
var minRotation:Number = 45;
var maxRotation:Number = 90;
ins.rotation = minRotation + Math.floor((maxRotation-minRotation)*percent);


adnreuaa 02.06.2013 22:17

Спасибо)


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

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