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

In8Finity 05.07.2010 14:21

Как обратиться к переменной из кадра?
 
Подскажите.
Вот у меня есть в главном классе переменная rightPressedFlag
которая определяется там строкой var rightPressedFlag:Boolean=false;
и дальше я какие-то операции с ней произвожу... Всё ок.
И есть мувик, в котором я в каком-то из кадров (прямо код кадре) хочу сделать так:
Код AS3:

if (rightPressedFlag){gotoAndPlay(11);}

Но выдаётся ошибка:
1119: Access of possibly undefined property rightPressedFlag through a reference with static type Class.

Подскажите, как мне правильно обратиться к этой переменной из кадра?

silin 05.07.2010 14:24

root.rightPressedFlag

Сайлас 05.07.2010 14:27

Учитывая, что она определяется как просто var, у меня есть подозрение что это в конструкторе локальная переменная или я ошибаюсь?

In8Finity 05.07.2010 14:27

Неа. Не работает. У меня это первой мыслью было.
Пишет вот что:

1119: Access of possibly undefined property rightPressedFlag through a reference with static type flash.display:DisplayObject.

Добавлено через 1 минуту
Описываю я её в классе прямо.
Вот здесь:

Код AS3:

         public class Main extends MovieClip {
                var rightPressedFlag:Boolean=false;
                ...


silin 05.07.2010 14:42

ага, не дает скомпилить такое
значит
Main(root).rightPressedFlag

Добавлено через 2 минуты
да и доступ public должен быть
Код AS3:

public class Main extends MovieClip
{
        public var rightPressedFlag:Boolean = false;
 
}


In8Finity 05.07.2010 14:49

Спасибо. Заработало.

Worfollomey 23.07.2010 15:21

А если класс не главный. К примеру у меня на сцене лежит мувиклип у которого расширение моего класса. Как мне обратить к переменной в этом классе?

silin 23.07.2010 23:17

все сводится к тому, что нужно иметь ссылку на экземпляр этого класса (т.е. на этот мувик, который лежит на сцене, в данном случае)
как ее получить неважно
-передать ее в объект, из которого надо обратиться
-прошагать по иерархии снизу вверх через parent или сверху от root-а

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

универсально решение - это использование событийной модели: объект вещает событие, все кому положено (кто подписан на его прослущку) это событие получают и реагируют.., но чтобы так все работало нужно, естественно, продумать и реализовать систему событий и подписки..

что в каждом конкретном случае проще/дешевле решается по месту, в соотвествии с масштабом и требуемой гибкости задачки

полистай форум об говорено-переговорено немерено..


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

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