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

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

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

Регистрация: Oct 2003
Сообщений: 74
По умолчанию Сборка swf из as+fla с помощью MTASC

Мне необходима компиляция проекта из командной строки. Пытаюсь использовать для этого MTASC. Приложения, состоящие только из as-кода компилируются и запускаются нормально. Но мне необходимо использовать библиотеку мувиклипов. Пыталась сделать, как описано в примерах к MTASC (http://tech.motion-twin.com/mtasc.html#tutorial). В результате компиляции из swf-файла пропадает вся графика, остаются лишь функции, прописанные в as-файле.

Backgammon.as
Код:
class Backgammon {
	
static var app : Backgammon;

function Backgammon() {
// Вывод первой тестовой надписи
	_root.createTextField("tf",0,0,0,320,240);
	_root.tf._x=70;
	_root.tf._y=100;
	_root.tf.text = "Hello world !";
// Добавление тестового объекта из библиотеки
	_root.attachMovie("piece", "piece", _root.getNextHighestDepth(), {_x:10, _y:10});
	_root.piece.gotoAndStop("W2");
// Расстановка фишек для начала партии
	_root.mField.mFigure_12.gotoAndStop("B5");
	_root.mField.mFigure_1.gotoAndStop("B2");
	_root.mField.mFigure_17.gotoAndStop("B3");
	_root.mField.mFigure_19.gotoAndStop("B5");

	_root.mField.mFigure_13.gotoAndStop("W5");
	_root.mField.mFigure_24.gotoAndStop("W2");
	_root.mField.mFigure_8.gotoAndStop("W3");
	_root.mField.mFigure_6.gotoAndStop("W5");
// Вывод второй тестовой надписи
	_root.createTextField("tf2",1,0,0,320,240);
	_root.tf2._x=70;
	_root.tf2._y=100;
	_root.tf2.text = "That all, folks !";
	
	_root.stop();
}

static function main(mc) {
	app = new Backgammon();
}

} // class Backgammon
Строка компиляции:
mtasc -swf backgammon.swf -main -header 320:240:12 Backgammon.as

Собранный в Flash CS3 swf-ролик работает так, как нужно (рисует игровое поле, выставляет начальную расстановку фишек, выводит обе тестовые надписи) и весит около 40К.

Собранный с помощью MTASC ролик весит 594 байта и выводит на абсолютно пустом экране (то есть без графики - в том числе и без приаттаченного тестового клипа) обе тестовых надписи.

Каким образом заставить mtasc не переписывать полностью swf, а подменять в нем заданные в as классы и методы? Ведь именно так описывается принцип работы mtasc его авторами: "MTASC takes the SWF file specified with the -swf flag, compile all .as specified files, and update the SWF file by replacing all classes that are present inside it by the newly compiled classes."

Вроде бы, все делаю по инструкции, а - не работает...

Старый 29.04.2008, 00:09
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Я бы скачал FD, создал бы проект (как это сделать), потому скопилил бы один раз и в окне Output взял готовую командную строку и засунул ее в батник.
Пример:
Цитата:
"C:\Program Files\FlashDevelop3\FirstRun\Tools\fdbuild\fdbuild.exe" "D:\_iDoc\_Source\work\Sample\Viewer.as2proj" -ipc 464a94c0-a3b2-44bb-b906-bb4da862c511 -compiler "C:\Program Files\FlashDevelop3\FirstRun\tools\mtasc" -library "D:\_iDoc\My Flash\_Classes\private" -cp "D:\_iDoc\My Flash\_Classes\public" "C:\Documents and Settings\iNils\Local Settings\Application Data\Adobe\Flash CS3\en\Configuration\Classes"
И это не "swf из as+fla", а "swf B из as+swf A"
__________________
(и)Нильс.ru | Плагины для FlashDevelop


Последний раз редактировалось iNils; 29.04.2008 в 00:12.
Создать новую тему Ответ Часовой пояс GMT +4, время: 15:57.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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