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

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

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
По умолчанию Заставить FD вкомпилировать все классы из указанного пакета

Знаю, что где-то подобная тема была, но что-то не могу найти. Собственно вопрос: как заставить FD (или компилятор через FD) компилировать даже те классы, которые нигде не импортированы и никак не упоминаются. Нужно, чтобы getDefinitionByName() работал без упоминания классов в проекте.
Уже весь нет перерыл, и на форуме FD тему создал. Пока безрезультатно

Старый 30.11.2015, 10:18
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 2  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Если классы в swc, то можно в её контекстном меню выбрать Options, там можно указать тип подключения. (Обычная, полная, расширяющая)
__________________
Дети не должны знать о своих родителях

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Нет, они просто текстовые
Я постоянно забываю упомянуть какой-нибудь новый класс в проекте, и получаю рантайм ошибку при попытке создать объект на его основе.
У меня в игре в описании локаций прописаны текстовые пакеты и классы объектов, которые должны использоваться в той или иной локации.
Это конечно не принципиально, но хотелось бы автоматизировать процесс

Старый 30.11.2015, 12:04
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 4  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Не очень понимаю, зачем использовать getDefinition, если классы не подгружаются внешне, а уже содержатся в проекте?
__________________
Дети не должны знать о своих родителях

Старый 30.11.2015, 17:37
callme вне форума Посмотреть профиль Отправить личное сообщение для callme Найти все сообщения от callme
  № 5  
Ответить с цитированием
callme
 
Аватар для callme

Регистрация: Dec 2014
Сообщений: 312
Можно в project properties->build->pre-build с помощью .bat файла например генерировать .as файл с упоминанием всех классов.

Старый 30.11.2015, 18:10
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 6  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Сообщение от Tails Посмотреть сообщение
Не очень понимаю, зачем использовать getDefinition, если классы не подгружаются внешне, а уже содержатся в проекте?
Затем, что объект, который должен использоваться в локации, указывается в XML файле описания локации. Все создается динамически, а не захаржкожено куда-то. Естественно, компилятор, не найдя нигде в движке игры упоминания этих классов, в финальный файл их не добавит
Эти классы не используются нигде сразу, а должны быть доступны исплючительно по требованию
Цитата:
Можно в project properties->build->pre-build с помощью .bat файла например генерировать .as файл с упоминанием всех классов.
Ну да, как вариант. Если нет каког-нибудь более красивого способа

Старый 30.11.2015, 19:23
KBAC вне форума Посмотреть профиль Отправить личное сообщение для KBAC Найти все сообщения от KBAC
  № 7  
Ответить с цитированием
KBAC
 
Аватар для KBAC

Регистрация: Jan 2006
Адрес: Москва (Нижний Новгород)
Сообщений: 229
Записей в блоге: 1
Отправить сообщение для KBAC с помощью Skype™
Использовать что-нибудь типа фабрики и энумератора типа объектов? Не тащить классы в данные, а вместо этого хранить тип объекта по которому генерить объект нужного класса. Так классы не потеряешь и данные чистые. При этом инфа о конкретных классах будет только внутри фабрики.

Хотя это оффтоп по теме
__________________
Будь проще.

Старый 30.11.2015, 19:53
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 8  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Собственно, у меня так и есть. Но в том то и проблема, что туда надо указывать вновь созданные классы и удалять убранные вручную. Я забываю это делать, и это уже напрягает)
Я хочу, чтобы я создавал новый класс в определенной директории, и ничего больше не делая собирал проект, а он уже был туда вкомпилирован.

Я уже почти написал батник, как посоветовал callme, но что-то не могу разобраться как мне получить именно имена файлов в директории, а не полные пути к ним. Видимо придется забить на батч, и написать это на си шарпе)

Добавлено через 1 час 10 минут
Все, вопрос решен. Написал батник гененирующий что-то типа энумератора.
callme, спасибо за идею

Собственно, кому интересно, сам батник такой
Код:
set DIR=%~dp0
set OUTPUT_FILE_NAME=com\untitledproject\game\levels\ClassDefinitions.as
set OBSTACLES_DIR=%DIR%com\untitledproject\game\view\obstacles
set ENEMIES_DIR=%DIR%com\untitledproject\game\view\characters\enemies
set BOSSESS_DIR=%DIR%com\untitledproject\game\view\characters\enemies\bosses
set NPC_DIR=%DIR%com\untitledproject\game\view\characters\npc
set EXTENSION=.as
set OUTPUT_FILE=%DIR%\%OUTPUT_FILE_NAME%
set PACKAGE=package com.untitledproject.game.levels {
set CLASS=	public class ClassDefinitions {
set CONSTRUCTOR=		public function ClassDefinitions() {

@echo off
@echo %PACKAGE%> %OUTPUT_FILE%
@echo 	import com.untitledproject.game.view.obstacles.*; >> %OUTPUT_FILE%
@echo 	import com.untitledproject.game.view.characters.enemies.*; >> %OUTPUT_FILE%
@echo 	import com.untitledproject.game.view.characters.enemies.bosses.*; >> %OUTPUT_FILE%
@echo 	import com.untitledproject.game.view.characters.npc.*; >> %OUTPUT_FILE%
@echo. >> %OUTPUT_FILE%
@echo %CLASS%>> %OUTPUT_FILE%
@echo %CONSTRUCTOR%>> %OUTPUT_FILE%
for %%i in ( %OBSTACLES_DIR%\*%EXTENSION%) do (
	echo				%%~ni >> %OUTPUT_FILE%;
)
for %%i in ( %ENEMIES_DIR%\*%EXTENSION%) do (
	echo				%%~ni >> %OUTPUT_FILE%;
)
for %%i in ( %BOSSESS_DIR%\*%EXTENSION%) do (
	echo				%%~ni >> %OUTPUT_FILE%;
)
for %%i in ( %NPC_DIR%\*%EXTENSION%) do (
	echo				%%~ni >> %OUTPUT_FILE%;
)
@echo 		}>> %OUTPUT_FILE%
@echo 	}>> %OUTPUT_FILE%
@echo }>> %OUTPUT_FILE%

exit;
Ну и сам файл ClassDefinitions нужно упомянуть где-то в проекте

Батник называется FileImporter.bat и лежит в директории src проекта.
А в project - build - pre-build
добавил следующий код

Код:
C:\windows\system32\cmd.exe /c start $(ProjectDir)/src/FileImporter.bat
Все работает как по маслу)


Последний раз редактировалось caseyryan; 30.11.2015 в 21:18.
Старый 01.12.2015, 01:16
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 9  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Цитата:
сам батник такой
Я наверно первый раз увидел батник и у меня сломались глаза. Поражаюсь, как в этом вообще можно разобраться... круть)

Старый 01.12.2015, 07:04
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 10  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Сообщение от samana Посмотреть сообщение
Я наверно первый раз увидел батник и у меня сломались глаза. Поражаюсь, как в этом вообще можно разобраться... круть)
Я не особый специалист по батникам Код тут достаточно примитивный, уверен, что его можно написать гораздо лучше. Но мою задачу он выполняет, и мне этого достаточно

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

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

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


 


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


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