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

ptirA 24.12.2008 17:35

Не могу разобраться с обращением к переменным
 
Вложений: 1
Привет всем!

Суть: на сцене есть 4 объекта (2 кнопки и 2 клипа), по нажатию на кнопки клипы твинятся, по нажатию на сами клипы твинятся точно так же. по второму нажатию на кнопки либо на клипы, твинятся обратно.

Реализация: фунция выставления позиции, функция restore, функции зумИна и зумАута, п клику идет проверка (tweenCheck) на что нажали (за это отвечает глобальная переменная selectedUnit)

Хочу сделать чтоб переключать клипы можно было и в момент когда один из них активен, т.е. код должен смотреть, когда кликаем на клип, активен он или нет, если активен то берем новый твин и едем к позиции 2ого, либо просто возвращаем кликнутый клип на место (restore) и выставляем другой (setPosition)

Проблема: Внутри функций setPosition и restorePosition стоит простое условие (if (selectedUnit ==1) {бла бла бла }else {тра ля ля })

Как обратиться к переменной внутри условия которое внутри функции, как бы тупо это не звучало) ?

mre 24.12.2008 17:40

Цитата:

Сообщение от ptirA (Сообщение 786118)
Как обратиться к переменной внутри условия которое внутри функции, как бы тупо это не звучало) ?

Что-что?

ptirA 24.12.2008 17:45

да да ... я понимаю что это бред... просто сформулировать я это по другому затрудняюсь.
я думаю что было бы просто прекрасно лоовить активный клип по selectedUnit, но вот так к ней обратиться не знаю(

Kuruki 24.12.2008 18:49

Упростите код до минимума, к чему здесь все эти твины, вопрос-то не в этом. Уверен, что пока будете упрощать, сами разберетесь...
PS: в чем проблема так и не понял, у вас selectedUnit - публичная переменная класса. Доступна везде.

ptirA 24.12.2008 19:20

ммм... я бы с удовольствием упростил если бы знал как, да я знаю что можно сдеать вообще два твина на x и y, сделать универсальную функцию в которую просто будут подставляться значения для них, но в том случае то же возникают проблемы.

фактически вот код который происходит по нажатию на определенный элемент

Код AS3:

function tweenCheck():void
{
        if (myTween_scaleX && myTween_scaleY.isPlaying) return;
 
        if (main_mc.scaleX < mainScaleXin && main_mc.scaleY < mainScaleYin )
        {               
                setPosition();
                removingListeners();
        }
        else
        {
                restorePosition();
                addingListeners();               
        }
}

+ переменной selectedUnit присваивается еще определенное значение.

Я не совсем понимаю как сюда еще вписать условие что если кликнут другой клип во время когда
Код AS3:

main_mc.scaleX < mainScaleXin && main_mc.scaleY < mainScaleYin

вся проблема в том, что в selectedUnit уже упало значение. Может быть сделать еще одну переменную символизирующую активность того, или иного клипа?

Kuruki 24.12.2008 20:24

Я не имел ввиду что ваш код слишком громоздкий и нуждается в переработке, я имел ввиду, что для того чтобы разобраться в вопросе, например, видимости переменной в функции, нужно упростить код вплоть до того, чтоб там осталась одна эта переменная и эта функция. Тем, кто пожелает помочь вам будет сложно быстро разобраться в вашей проблеме.

ptirA 25.12.2008 14:57

Это верно ( разобраться там действительно сожновато будет (
Если в исходнике начать все упрощать, то работающего исходника не получится( зная мои "умения" объяснять проблему решил выложить нормально работающий исходник.


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

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