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

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

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

Регистрация: Sep 2007
Адрес: Saint-Petersburg, Russia
Сообщений: 1
Post Глобальные функции и переменные

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


Последний раз редактировалось Alssn; 18.09.2007 в 17:39.
Старый 18.09.2007, 17:40
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

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

Код:
package functions {
    public function myFunction():void {
        trace('Hello!');
    }
}
Код:
import functions.myFunction;

…

myFunction();

…

Старый 19.10.2007, 02:28
Xelat вне форума Посмотреть профиль Отправить личное сообщение для Xelat Найти все сообщения от Xelat
  № 3  
Ответить с цитированием
Xelat

Регистрация: Oct 2007
Сообщений: 22
2 __etc
Прошу прощения, а код
Код:
package functions {
    public function myFunction():void {
        trace('Hello!');
    }
}
где (в каком файле) описывается, и как подключается к флэшке? Не видно чтобы в нём были описаны классы, сразу идёт функция. Если не сложно, опишите пожалуйста подробно что и где прописать, чтобы функция была доступна везде.

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

Регистрация: Sep 2002
Сообщений: 30,787
Сохранить как myFunction.as в папку functions.

Старый 20.10.2007, 00:46
Xelat вне форума Посмотреть профиль Отправить личное сообщение для Xelat Найти все сообщения от Xelat
  № 5  
Ответить с цитированием
Xelat

Регистрация: Oct 2007
Сообщений: 22
Цитата:
Сообщение от __etc
Сохранить как myFunction.as в папку functions.
тогда судя по всему импорт надо делать непосредственно перед вызовом функции, т.е. импортировать везде и всюду, где эта функция используется.

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

Регистрация: Sep 2002
Сообщений: 30,787
Само собой.

Старый 21.10.2007, 20:44
Xelat вне форума Посмотреть профиль Отправить личное сообщение для Xelat Найти все сообщения от Xelat
  № 7  
Ответить с цитированием
Xelat

Регистрация: Oct 2007
Сообщений: 22
А как тогда быть с глобальными переменными?

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

Регистрация: Sep 2002
Сообщений: 30,787
Какими глобальными переменными?

Старый 23.10.2007, 00:52
miramax вне форума Посмотреть профиль Отправить личное сообщение для miramax Посетить домашнюю страницу miramax Найти все сообщения от miramax
  № 9  
Ответить с цитированием
miramax
 
Аватар для miramax

Регистрация: Oct 2005
Адрес: Борисоглебск
Сообщений: 1,702
Отправить сообщение для miramax с помощью ICQ Отправить сообщение для miramax с помощью AIM Отправить сообщение для miramax с помощью MSN Отправить сообщение для miramax с помощью Yahoo Отправить сообщение для miramax с помощью Skype™
Статические члены класса не подходят ?
__________________
AS3 | www.FLAPS.ru | Русские флэшеры самые умные флэшеры в мире. ©

Старый 23.10.2007, 13:51
Сэр Макс вне форума Посмотреть профиль Отправить личное сообщение для Сэр Макс Найти все сообщения от Сэр Макс
  № 10  
Ответить с цитированием
Сэр Макс
 
Аватар для Сэр Макс

Регистрация: Oct 2007
Адрес: Каунас, Литва
Сообщений: 3
Отправить сообщение для Сэр Макс с помощью ICQ Отправить сообщение для Сэр Макс с помощью Skype™
Вообще весь AS3 направлен на ООП. А ООП подразумевает максимальное искоренение любых глобальных переменных (для использования именно как глобальных переменных).
Тоесть идеален третий вариант - передавать нужные обьекты с нужной информацией в нужные классы.
Например если у нас есть игра, то создать ей базовый класс с окном игры, в нем создать пару подклассов каких-нибудь предметов, в каждого записав его parent отдельной переменной, дабы обьект знал кто является его базовым классом. Лично я предпочитаю такой вариант.

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

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

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


 


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


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