Форум 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)
-   -   AS2->AS3 migration: работа совместно с Flash IDE (http://www.flasher.ru/forum/showthread.php?t=87193)

MyXus 31.10.2006 13:16

AS2->AS3 migration: работа совместно с Flash IDE
 
Хелпов по кодингу предостаточно, а вот по самым простым вещам ответы - непонятно где искать..

Для начала попытался перевести простенький fla с 8 на 9 версию. Проблемы:
1. При попытке привязать класс к мувиклипу в библиотеке флеш ругается: "ActionScript 2.0 class scripts may only define class or interface constructs" (а там - пакадж). Это значит что работать как раньше принципиально невозможно?
2. Метод AttachMovie - полностью dedicated. Рекомменудют addChild(), но не указано каким методом теперь таскать мувы из библиотеки. Или библиотеки вообще больше нет? А со шрифтами тогда как быть?
3. Конструкция
Код:

mc.__proto__ = TClass.prototype;
mc.constructor = TClass;
mc.constructor.apply(mc);

еще актуальна? Или как-то по другому теперь всё работает?

etc 31.10.2006 13:29

1. Это я не знаю, какой класс ты туда привязываешь. AS2 класс нужно переписать на AS3 :D
2. У тебя в либе навешаны классы, собственно, когда ты вызываешь new AnyClass() — это и есть аттач. Никакого linkage id не нужно.
3. Нет, уже неактуальна.

MyXus 31.10.2006 13:36

Почти всё понял, спасибо -)

MyXus 31.10.2006 16:41

Прошу прощения, совершенно загнался :-(
АС-прожект во флеше работает, но если сопоставить мувику из библиотеки класс (например Classes.TMenuItems), при testMovie всё выглядит нормально, но флешовый компилер ругается: "ReferenceError: Error #1074: Illegal write to read-only property Classes::TMenuItems on global. at global$init()".
В гугл лазил, проблема встречается, описание решения - нет.

miramax 31.10.2006 16:45

выкладывай класс
Classes.TMenuItems

etc 31.10.2006 16:49

Да, показывай, что ты там накодил :)

з.Ы. А почему у тебя имена классов начинаются на «T»?

MyXus 31.10.2006 16:53

Код:

package Classes
{
        import flash.display.*;

        public class TMenuItems extends Sprite {
       
                public function TMenuItems() {
                        super();
                        this.graphics.lineStyle(1, 0);
                        this.graphics.moveTo(100,100);
                        this.graphics.lineTo(200,250);
                };
                       
        };
       
}

Структура размещения файлов
#..#
- #папка Classes#
--- TMenuItems.as
--- my_project.fla
- FPolis_AS3.as (document class)

При этом мувик в либе - самый простой.

Код:

package {
        import flash.display.*;
        import Classes.*;
        import flash.events.Event;

        public class FPolis_AS3 extends Sprite
        {
                public function FPolis_AS3() {
                        super();
               
                        var mc:TMenuItems = new TMenuItems();
                        this.addChild(mc);                       
                }
        }
}

На всякий случай - это код документ_класса.

MyXus 31.10.2006 16:57

Цитата:

Сообщение от __etc
А почему у тебя имена классов начинаются на «T»?

Это с С++ привычка -)
Все классы в вижл_студио начинаются на T, чтобы отличать их от структур и еще для чего-то, не помню.
Еще была практика всем переменным - членам класса давать префикс 'm_', чтоб отличать их от локальных переменных функций - методов класса. А еще давать префикс 'p' указателям - тоже оч полезная практика... для "сей" :-)

miramax 31.10.2006 16:58

А зачем привязывать программный рисунок к символу в билиотеке? У меня всё работает. Может быть ты что-то в символе написал? какой-то код? Хотя тогда c addFrameScript ошибки возникнут....

etc 31.10.2006 16:58

А почему TMenuItems не лежит в папке Classes?


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

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