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

Alssn 18.09.2007 17:36

Глобальные функции и переменные
 
В ActionScript 3.0 отсутствует постоянно доступный _root и поэтому возникает проблема хранения переменных и функций, которые будут доступны из любого участка кода для чтения/записи, создания и удаления.
Я использую три нижеперечисленных способа:
  1. Использование stage для отображаемых объектов или передача ссылки на stage через отдельный класс, как описано здесь.
  2. Статичные переменные и функции в отдельном классе и обращение к этому классу без создания экземпляра, геттеры и сеттеры. Этот вариант весьма удобен в определенных случаях, если создать объект типа Object и хранить переменные и функции как его свойства.
  3. Передача ссылки на объект, содержащий функции и переменные, каждому объекту при создании или передача её по наследству
Поделитесь, пожалуйста, если вы знаете другие методы.

etc 18.09.2007 17:40

Второй вариант самый приемлимый. Можно ещё использовать не классы со стат. методами, а глобальные функции, например:

Код:

package functions {
    public function myFunction():void {
        trace('Hello!');
    }
}

Код:

import functions.myFunction;



myFunction();



Xelat 19.10.2007 02:28

2 __etc
Прошу прощения, а код
Код:

package functions {
    public function myFunction():void {
        trace('Hello!');
    }
}

где (в каком файле) описывается, и как подключается к флэшке? Не видно чтобы в нём были описаны классы, сразу идёт функция. Если не сложно, опишите пожалуйста подробно что и где прописать, чтобы функция была доступна везде.

etc 19.10.2007 10:36

Сохранить как myFunction.as в папку functions.

Xelat 20.10.2007 00:46

Цитата:

Сообщение от __etc
Сохранить как myFunction.as в папку functions.

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

etc 20.10.2007 00:54

Само собой.

Xelat 21.10.2007 20:44

А как тогда быть с глобальными переменными?

etc 21.10.2007 20:48

Какими глобальными переменными?

miramax 23.10.2007 00:52

Статические члены класса не подходят ?

Сэр Макс 23.10.2007 13:51

Вообще весь AS3 направлен на ООП. А ООП подразумевает максимальное искоренение любых глобальных переменных (для использования именно как глобальных переменных).
Тоесть идеален третий вариант - передавать нужные обьекты с нужной информацией в нужные классы.
Например если у нас есть игра, то создать ей базовый класс с окном игры, в нем создать пару подклассов каких-нибудь предметов, в каждого записав его parent отдельной переменной, дабы обьект знал кто является его базовым классом. Лично я предпочитаю такой вариант.


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

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