PDA

Просмотр полной версии : Работа с As 2.0


xjack
19.01.2010, 15:25
Добрый день! В ближайшее время мне по работе предстоит иметь дело с проектом на As 2.0 (до этого работал только с 3.0, ). Хотелось бы узнать очень вкратце какие будут
существенные отличия и неудобства (либо наоборот преимущества) применительно к ООП. Я смотрел некоторые примеры на 2.0, вроде как связывание мувиков с программными классами происходит примерно так же как в 3.0. Остальное API вроде как тоже сделано в классах. Просто уже сформировалось объектное мышление, насколько это осложнит жизнь в AS2? И еще нюанс - нужно будет компилить по 7-ю версию плеера, и опять же интересует будут ли в связи с этим какие то ограничения?

Psycho Tiger
19.01.2010, 16:00
Добрый. существенные отличия и неудобства (либо наоборот преимущества) применительно к ООП.В целом, никаких. Разве что визуальное отображение чуть чуть по другому устроено.нужно будет компилить по 7-ю версию плеера, и опять же интересует будут ли в связи с этим какие то ограничения?Не будет плюшек 8, 9 и 10 флешев, очевидно же.

xjack
19.01.2010, 17:15
Я замечу эти плюшки или нет? =)

Psycho Tiger
19.01.2010, 17:53
Зависит от проекта. Например, нету глоу/блюр фильтра, битмапдаты и прочих радостей. Я бы без них уже повесился, если бы делал например игру.

etc
19.01.2010, 19:52
нету глоу/блюр фильтра, битмапдаты и прочих радостей.
У тебя AS2 ассоциируется с семеркой только? :)

xjack
19.01.2010, 20:17
Нет, это требование такое у них чтобы именно под 7-ку собирать.

xjack
25.01.2010, 16:43
А можно ли как-то связать главный мувик с классом (аналог DocumentClass в AS 3.0)?

etc
25.01.2010, 18:18
Можно, через хак с __proto__.

Psycho Tiger
25.01.2010, 18:43
QUOTE]
У тебя AS2 ассоциируется с семеркой только? :)
Ну, семёрка и восьмерка ) Делать под 9/10 на ас2 - как то.. )

Просто человек сказал же нужно будет компилить по 7-ю версию плеера

xjack
26.01.2010, 15:41
Тут возникла незадача - так сказать последний момент истины насчет ООП. Я связываю мувик с классом (имя класса в As 2.0 - "Мenu"), далее добавил его экземпляр вродительский мувик (имя инстанции - "menu"). В коде родительского мувика пишу:

var menu:Menu;
menu = Menu(this["menu"]);
menu.updateItems();

Последняя строчка не срабатывает. Т е все действия внутри класса Menu работают, проверял, но не могу дернуть добавленную мною функцию извне.
Каким способом можно это сделать?

Psycho Tiger
26.01.2010, 16:10
Хм, Menu(...) - это вообще на кастинг в AS3 походит. Где new?
menu = new Menu(...);
и updateItems() должна быть public, проверьте.

xjack
26.01.2010, 16:14
А вот таким образом уже работает:

menu = Menu(attachMovie("Menu", "menu1", 0));
menu.updateItems();


Но это если динамическое создание экземпляра. А как работать с уже созданным во fla?

dimarik
26.01.2010, 17:17
var menu:Menu;
menu = Menu(this["menu"]);
menu.updateItems();



trace(this). Куда смотрит?

xjack
27.01.2010, 02:22
Тут еще одна проблема появилась. Понадобилось загрузить xml-файл, в конструкторе главного класса пишу

xml = new XML();
xml.ignoreWhite = true;
xml.onLoad = xmlComplete;
xml.load("Menu.xml");


Весь ужас в том что в xmlComplete, несмотря на то что она описана в главном классе, управление передается несчастному xml-объекту (trace(this) проверял).
И получается что из нее я не могу достучаться до методов главного класса,они просто не видны. В AS 3.0 вроде в аналогичных ситуациях все нормально работало.

Пока что удалось восстановить ссылку на его экземпляр с помощью _root.getInstanceAtDepth
Но хотелось бы как то по-человечески.

udaaff
27.01.2010, 02:42
Используйте Delegate.