Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 17.01.2009, 18:58
Vikar вне форума Посмотреть профиль Отправить личное сообщение для Vikar Посетить домашнюю страницу Vikar Найти все сообщения от Vikar
  № 1  
Ответить с цитированием
Vikar
 
Аватар для Vikar

Регистрация: Oct 2008
Сообщений: 11
По умолчанию Вопрос по ООП, сделать переменную глобальной

Схема:
Main.as:
Код AS1/AS2:
package {
import BBB;
class Main ... {
var A:int;
var B:BBB=new BBB();
function Main {
A=240;
}
}
}
BBB.as:
Код AS1/AS2:
package {
class BBB ... {
funtion BBB {
// как тут узнать значение переменной А?
}
}
}
Как в классе BBB узнавать значение A, если оно будет менятся в течении работы программы? Нельзя ли в ООП делать переменную глобальной, чтобы она стала везде доступна?

Второй вопрос:
как в классе BBB можно работать со stage? (stage.stageWidth, stage.addEventListener ....)
__________________
Выбрать микрозаймы онлайн.

Старый 17.01.2009, 19:24
TERRORist вне форума Посмотреть профиль Отправить личное сообщение для TERRORist Найти все сообщения от TERRORist
  № 2  
Ответить с цитированием
TERRORist
 
Аватар для TERRORist

блогер
Регистрация: Jun 2005
Адрес: RU
Сообщений: 1,540
Записей в блоге: 12
Вам нужен Singleton... Вот я лично в таком виде юзаю:

Код AS3:
package
{
    /**
     * Пример реализации паттерна Одиночка на языке ActionScript 3.
     * с созданием экземпляра на этапе инициализации класса.
     *
     * @author  Yuri "Barmaley" Yarovoy
     * @version 1.0
     */
    public class Singleton
    {
 
        // Ссылка на единственный экземпляр класса.
        private static var __instance:Singleton = new Singleton();
 
        /**
         * Возвращает ссылку на единственный экземпляр класса.
         */
        public static function get instance():Singleton
        {
            return __instance;
        }
 
        /**
         * Конструктор.
         */
        public function Singleton()
        {
            if(__instance)throw new Error("Вы не можете создавать экземпляры класса при помощи конструктора. Для доступа к экземпляру используйте Singleton.instance.");
        }
    }
}

Старый 17.01.2009, 19:32
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 3  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
вам нужно в класс BBB передать ссылку на класс Main, а не слушать всяких еретиков с их синглтонами.

Старый 17.01.2009, 19:57
TERRORist вне форума Посмотреть профиль Отправить личное сообщение для TERRORist Найти все сообщения от TERRORist
  № 4  
Ответить с цитированием
TERRORist
 
Аватар для TERRORist

блогер
Регистрация: Jun 2005
Адрес: RU
Сообщений: 1,540
Записей в блоге: 12
Ахахааах))) забавно))

Старый 17.01.2009, 20:38
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 5  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от Vikar Посмотреть сообщение
как в классе BBB можно работать со stage? (stage.stageWidth, stage.addEventListener ....)
Можно, после наступления события ADDED_TO_STAGE.

Старый 18.01.2009, 01:55
AL.exe вне форума Посмотреть профиль Отправить личное сообщение для AL.exe Посетить домашнюю страницу AL.exe Найти все сообщения от AL.exe
  № 6  
Ответить с цитированием
AL.exe
 
Аватар для AL.exe

Регистрация: Jan 2004
Адрес: Net
Сообщений: 1,049
Отправить сообщение для AL.exe с помощью ICQ
А чем не устраивает статический класс?
__________________
Дело не в тебе

Старый 18.01.2009, 02:05
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от AL.exe Посмотреть сообщение
А чем не устраивает статический класс?
Негибко и неудобно. Как только потребуется создать больше одной подобной связки, потребуется переписывать код.

Старый 18.01.2009, 02:58
AL.exe вне форума Посмотреть профиль Отправить личное сообщение для AL.exe Посетить домашнюю страницу AL.exe Найти все сообщения от AL.exe
  № 8  
Ответить с цитированием
AL.exe
 
Аватар для AL.exe

Регистрация: Jan 2004
Адрес: Net
Сообщений: 1,049
Отправить сообщение для AL.exe с помощью ICQ
Ну, в качестве глобальных переменных обычно выступают какие-то параметры, которые определяются на этапе компиляции или инициализации приложения и потом не меняются. Иначе не вижу смысла называть их кгхм... глобальными
__________________
Дело не в тебе

Старый 18.01.2009, 12:57
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 9  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
Цитата:
Ну, в качестве глобальных переменных обычно выступают какие-то параметры, которые определяются на этапе компиляции или инициализации приложения и потом не меняются. Иначе не вижу смысла называть их кгхм... глобальными
госпади, это уписаться можно читая такие перлы

если какие-то параметры никогда не меняются, то это не глобальные и не переменные. это называется константы.

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

Старый 18.01.2009, 16:33
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 10  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
Цитата:
если какие-то параметры никогда не меняются, то это не глобальные и не переменные. это называется константы.
Ну, константа может быть глобальной или не глобальной, это раз.
А тот факт что значение устанавливается "на этапе компиляции или иницииализации" ни коим образом не мешает использовать переменные, а не константы, так как получим большую гибкость. Например, приложение соединяется по сокету с сервером и работает. Порт можно сделать:
1) константой - и все будет работать
2) переменной - и устанавливать из flashvars и т п при инициализации приложения и запрещать менять
3) переменной, и разрешать менять некоторым классам - для добавления поведения вида "не смогли присоединиться к этому порту, используем резервный канал связи на другом."
__________________
4am is time to rock

Создать новую тему Ответ Часовой пояс GMT +4, время: 21:55.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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