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

grafillo! 21.07.2014 20:57

Можно ли получить переменную из главного класса
 
У меня есть главный класс я получаю переменную и она используется в ещё одном классе, чтобы не создавать две переменных я её присваиваю переменной подкласса и использую в главном классе тоже, можно ли получить из подкласса доступ к переменным мэйн класса? Кароч можно ил сделать прямее?

Код AS3:

мэйн класс {
    подкласс.переменная = spisok.message.@price;
 
    количество = 5* подкласс.переменная;
}
 
подкласс{
    вар:переменная;
}


samana 21.07.2014 21:09

Можно сделать эту переменную static public, тогда доступ к ней будет доступен везде, просто через имя класса, в котором она объявлена.

grafillo! 21.07.2014 21:12

Цитата:

Сообщение от samana (Сообщение 1169377)
Можно сделать эту переменную static public, тогда доступ к ней будет доступен везде, просто через имя класса, в котором она объявлена.

ну так у меня и так она доступна через имя класса, тем более какое имя у главного класса?

LifeIsRhythm 21.07.2014 21:23

Вроде три года уже учите, а вопросы, как после прочтения половины книги Мука.
Обычно, если в приложении значение определенного свойства требуется в нескольких местах,
но получить доступ красивым способом не получается, то обычно делают статический класс ( фасад ).

Добавлено через 52 секунды
А вообще можно и две переменных создать и даже три, приложение они точно не положат.

Добавлено через 4 минуты
И о чем Вы думали, когда писали "сделать прямее"? Что в программировании означает "прямее"?

samana 21.07.2014 21:33

Допустим у вас есть какой-то класс, возьмём в пример главный класс Main. Если вы создадите в нём статическую, публичную переменную, например (код в Main классе)
Код AS3:

static public var mainVar:String="Статическая переменная Main класса";

то в любом классе вашего проекта, вы можете обратиться к этой переменной таким образом, например (код в любом классе проекта)
Код AS3:

trace(Main.mainVar);//Статическая переменная Main класса


grafillo! 21.07.2014 21:34

Цитата:

Сообщение от LifeIsRhythm (Сообщение 1169380)
Вроде три года уже учите, а вопросы, как после прочтения половины книги Мука.
Обычно, если в приложении значение определенного свойства требуется в нескольких местах,
но получить доступ красивым способом не получается, то обычно делают статический класс ( фасад ).

Добавлено через 52 секунды
А вообще можно и две переменных создать и даже три, приложение они точно не положат.

Добавлено через 4 минуты
И о чем Вы думали, когда писали "сделать прямее"? Что в программировании означает "прямее"?

сделать прямее значит объявить переменную в главном классе один раз и получать отовсюду к ней доступ х)

Добавлено через 1 минуту
Цитата:

Сообщение от samana (Сообщение 1169384)
Допустим у вас есть какой-то класс, возьмём в пример главный класс Main. Если вы создадите в нём статическую, публичную переменную, например (код в Main классе)
Код AS3:

static public var mainVar:String="Статическая переменная Main класса";

то в любом классе вашего проекта, вы можете обратиться к этой переменной таким образом, например (код в любом классе проекта)
Код AS3:

trace(Main.mainVar);//Статическая переменная Main класса


ну я и так сделал почти, хотя да наверное из третьего класса моим способом эту переменную не получить х)

dimarik 21.07.2014 23:55

grafillo, обратите внимание, что код AS3 должен обрамляться тегами [as3][/as3], для псевдокода можно применить тег, сохраняющий первоначальное форматирование: [code][/code]. На первый раз я сам отредактировал ваше сообщение.

Добавлено через 11 минут
Цитата:

Сообщение от grafillo! (Сообщение 1169386)
сделать прямее значит объявить переменную в главном классе один раз и получать отовсюду к ней доступ х)

Глобальный доступ — порочная практика в рамках ООП и нужны достаточно веские причины, чтобы ею все-таки воспользоваться.

grafillo! 22.07.2014 00:17

Цитата:

Сообщение от dimarik (Сообщение 1169394)


Глобальный доступ — порочная практика в рамках ООП и нужны достаточно веские причины, чтобы ею все-таки воспользоваться.

а что делать если переменная используется в нескольких классах, как построить структуру приложения? х)

GrafMine 22.07.2014 11:49

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

Koopa 24.07.2014 19:36

У тс мусор в голове!
Что такое под класс? Наследуемый? Он имеет все переменные супер-родителя!


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

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