Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Как создать глобальную переменную? (http://www.flasher.ru/forum/showthread.php?t=86180)

eXplozive 09.10.2006 21:46

Как создать глобальную переменную?
 
Как в АС3 создаются глобальные переменные? В АС2 я делал это так:

Код:

_global.varName = "string";
Как мне это повторить в АС3 ? Дело в том что мне нужна переменная которая былы бы видна в подгружаемом компоненте... Мне нужно ее задать в основном файле. Помогите пожалуйста кто знает как эту проблему решить.

DimZ 09.10.2006 22:34

а вот так вот не помогает?
Код:

_root.i

D12 09.10.2006 23:00

Код:

_global.varName = "string";
попробуй так :

Код:

global.varName = "string";
вот эти риски "_" в AS3 для "root" и еще многих отменены =)

miramax 09.10.2006 23:42

2 D12 В АС 3 объекта global нет.
Почему бы не исползовать статические члены классов? Очень удобно.
Если совсем плохо без global?то можно, но не желательно, делать так

Object.anyName = 5

и в любом ролике, в загруженных тоже,
можно будет вызвать Object.anyName

D12 10.10.2006 00:33

Никогда непользуюсь "global" просто предположил =)

А чем так негодится ?
Код:

root.zzz = 12;

miramax 10.10.2006 00:59

Цитата:

Сообщение от D12
А чем так негодится ?
Код:

root.zzz = 12;

:confused: насколько я понял, у подгружаемых клипов свой рут... могу ошибаться

eXplozive 10.10.2006 03:46

Я использую FlexBuilder 2

Nirth 10.10.2006 04:21

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

Автору советуется ознакомится с Migration from ActionScript 2.0 в документации, где есть ответ на его вопрос.

D1,Dimz не советуйте ерунды.

D12 10.10.2006 21:46

2Nirth
А что ты посоветуешь ?
Интересно мнение знающего человека этой области : )

etc 10.10.2006 23:50

D12, если не знаете ответ — не отвечайте. Это имелось ввиду. Не нужно никаких предположений.

Единственный (и правильный, даже в AS2) — использовать статический член класса.
Код:

package {
  public class GlobalData {
        public static var anyGlobalVariable:Number = 40;
  }
}

Юзается, как GlobalData.anyGlobalVariable.

D12 11.10.2006 00:02

Спасибо Денис за просвещение =)

pkfun 11.10.2006 00:08

Почему неправильно использовать _global в AS2?

etc 11.10.2006 02:22

Потому что в _global хранятся классы, как минимум. На AS2 можно писать, как в AS1 (и _global как раз оттуда пришёл), со всеми вытекающими последствиями и глюками. Уже в AS2 не рекомендуется использовать _global, хотя бы потому что есть возможность перекрытия классов своими переменными. Можно, если соблюдать все правила написания, обойтись без дополнительных глюков. Тогда переход на AS3 будет безболезненным. Если вы, конечно, собираетесь на него переходить.

pkfun 11.10.2006 03:26

Цитата:

Сообщение от __etc
Уже в AS2 не рекомендуется использовать _global, хотя бы потому что есть возможность перекрытия классов своими переменными.

А можно пример такого перекрытия? Хочу посмотреть, чтобы не допускать ошибки.

etc 11.10.2006 13:32

Если у тебя есть пакет view, то, например, _global.view = 10; перезапишет классы, находящиеся в этом пакете.

Код:

import view.AnyClass;
a = new AnyClass();
trace(a); // [object Object]
_global.view = 10;
b = new AnyClass();
trace(b); // undefined



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

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