Просмотр полной версии : 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);еще актуальна? Или как-то по другому теперь всё работает?
1. Это я не знаю, какой класс ты туда привязываешь. AS2 класс нужно переписать на AS3 :D
2. У тебя в либе навешаны классы, собственно, когда ты вызываешь new AnyClass() — это и есть аттач. Никакого linkage id не нужно.
3. Нет, уже неактуальна.
Почти всё понял, спасибо -)
Прошу прощения, совершенно загнался :-(
АС-прожект во флеше работает, но если сопоставить мувику из библиотеки класс (например Classes.TMenuItems), при testMovie всё выглядит нормально, но флешовый компилер ругается: "ReferenceError: Error #1074: Illegal write to read-only property Classes::TMenuItems on global. at global$init()".
В гугл лазил, проблема встречается, описание решения - нет.
выкладывай класс
Classes.TMenuItems
Да, показывай, что ты там накодил :)
з.Ы. А почему у тебя имена классов начинаются на «T»?
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);
}
}
} На всякий случай - это код документ_класса.
А почему у тебя имена классов начинаются на «T»?Это с С++ привычка -)
Все классы в вижл_студио начинаются на T, чтобы отличать их от структур и еще для чего-то, не помню.
Еще была практика всем переменным - членам класса давать префикс 'm_', чтоб отличать их от локальных переменных функций - методов класса. А еще давать префикс 'p' указателям - тоже оч полезная практика... для "сей" :-)
А зачем привязывать программный рисунок к символу в билиотеке? У меня всё работает. Может быть ты что-то в символе написал? какой-то код? Хотя тогда c addFrameScript ошибки возникнут....
А почему TMenuItems не лежит в папке Classes?
А почему TMenuItems не лежит в папке Classes?Лежит, просто я - забыл я отформатировал пост пробелами сначала - они сгорели :-)
Если б не лежало в папке - компилер бы ругался попроще -)
да и компилер эклипса ругался бы в первую очередь. А он молчит.
А зачем привязывать программный рисунок к символу в билиотеке? У меня всё работает. Может быть ты что-то в символе написал? какой-то код? Хотя тогда c addFrameScript ошибки возникнут....символ абсолютно пустой. просто квадратик, сэкспоритрованный в библиотеку. Нужно это для теста... Потом я хочу рпоект перетащить с AS2 на AS3, а там куча графики.
фла должен лежать в папке вместе спапкой Classes, а не в папке Сlasses
А почему он у тебя расширяет Sprite, а не MovieClip?
miramax, нет.
А почему он у тебя расширяет Sprite, а не MovieClip?
разницы, в данном случае, нет
в данном случае разницы со спрайтом действительно нет
вот архив проекта:
www.myxus.nm.ru/4/Fpolis_as3.rar
У меня работает нормально.
Борррр.... Не знаю, в флеш 9 всё компилится :)
Ты во флексе это делал?
Нет.. Flash 9 public alpha...
Вот чорд..
То есть код то я набираю во флекс-билдер под эклипс. Но оно молчит. А вот флеш - ругается..
Что, при TestMovie или Publish? Хотя, я и так и так пробовал, всё пашет.
Кодировки в настройках правильные?
при тест movie.
Визуально - всё в порядке. Меня просто нервирует ошибка компилятора флеша.
А что за кодировки? Да и какое они имеют значение - буквы то все английские.. ?
Бл#, нашел!
В настройках AS3 в самом флеше по привычке прописал папку './Classes/'. Она всё и портила. Вот гадость :-(((
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.