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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

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

Регистрация: Jan 2009
Сообщений: 1,651
По умолчанию Принудить компилятор внедрить класс.

Я уже спрашивал, но не получил вразумительного ответа.
У меня на основе xml-ки генерируется пачка объектов.

Код AS3:
	var xml:XML = Main.skills.skill.(attribute("name") == skillname)[0];
	var base:String = xml.@base;
	if (!base) base = "SkillBase";
	var c:Class = getDefinitionByName("engine.skills::"+base) as Class;
	var s:SkillBase = new c();
Но. компилятор, зараза, если класс нигде в коде ниразу не засветился его не встраивает. В результате приходится писать какую-нибудь ерунду типа:
Код AS3:
	private static const SKILLS_LIST = [Skill1, Skill2, Skill3...];
	private static const MUSIC_LIST= [Music_opus_opium_momentums, Music_Per_DLDN_Instrumental,...];
Ну неудобно. Ничего сделать нельзя? Из вне грузить не хотелось бы.
__________________
мой пустой блог

Старый 05.03.2013, 21:42
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
ЕМНИП у компилятора опция такая есть, рекурсивно подсосать все что найдет.

Старый 05.03.2013, 21:56
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 3  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Опция называется -include-libraries+="Disk:/folder path/"
Чуть подробнее есть тут
__________________
...вселенская грусть

Старый 05.03.2013, 21:56
ChuwY вне форума Посмотреть профиль Отправить личное сообщение для ChuwY Посетить домашнюю страницу ChuwY Найти все сообщения от ChuwY
  № 4  
Ответить с цитированием
ChuwY
 
Аватар для ChuwY

Регистрация: Nov 2009
Адрес: Тула / Москва
Сообщений: 734
Отправить сообщение для ChuwY с помощью ICQ Отправить сообщение для ChuwY с помощью Skype™
Если я не ошибаюсь, проблема в том, что у mxmlc нет директивы include-sources.

Можно разрешить ситуацию посредством временной библиотеки.

Готовим comc-config.xml, в котором используем директиву include-sources, например, так:
Код:
<include-sources>
    <path-element>@source.dir@</path-element>
</include-sources>
Готовим mxmlc-config.xml, в котором используем директиву include-libraries, например, так:
Код:
<include-libraries>
    <library>@output.swc.dir@/@swc.file@</library>
</include-libraries>
После чего собираем проект ant-ом или другим подобным инструментом, указав правильную последовательность целей сборки.

Аргументы mxmlc
Аргументы compc

Другой вариант -- использовать дополнительный конфиг со списком необходимых для включения классов. Впрочем, перечислять то их все равно придется, как и в простом as-файле.

Создаем файл includes.xml.
Пишем нечто вроде:
Код:
<?xml version="1.0" encoding="utf-8" ?>
<flex-config>
    <includes>
        <symbol>somepack.SomeClassB</symbol>
	<symbol>somepack.SomeClassA</symbol>
    </includes>
</flex-config>
После чего в среде разработки к опциям компилятора дописываем -load-config+=includes.xml ииии все. Все перечисленные классы будут включены как надо. Главное не забывать делать clean/refresh после изменений дополнительного конфига.
Тк у вас имена классов уже содержатся в каком-то конфигурационном файле, перегон их каким-нибудь скриптом в includes не должен вызвать трудностей.
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ"
Мои ачивки: художник-паразит.


Последний раз редактировалось ChuwY; 05.03.2013 в 23:02.
Старый 06.03.2013, 11:54
dimensb вне форума Посмотреть профиль Отправить личное сообщение для dimensb Найти все сообщения от dimensb
  № 5  
Ответить с цитированием
dimensb

Регистрация: Jun 2012
Сообщений: 16
Я пользуюсь следующим способом. Для классов ClassName1 и ClassName2, которые должны войти в swf делаю конструкцию вида:

Код AS3:
package
{
	import classes.*;
 
	public class ElementsTypesHelper
	{
		ClassName1;
		ClassName2;
	}
}
без создания промежуточных объектов. Правда этот класс генерирую автоматически, поэтому вручную ничего не вносится.

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:28.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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