Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Embed from XML (http://www.flasher.ru/forum/showthread.php?t=166884)

NikolaCocaCola 06.09.2011 18:57

Embed from XML
 
При передаче в source путь из XML

Код AS1/AS2:

[Embed(source = xmlListFonts.*[0].@path, fontFamily="Comic", embedAsCFF="false")] var MyFont:Class;

вывливаются ошибки
Error: 'path' does not have a recognized extension, and a mimeType was not provided
Error: Unable to transcode path.

XML выглядит вот таким образом
<item name = "Comic" path = "/../lib/fonts/Comic.ttf"/>
Подскажи пожалуйста как правильно обращаться к XML и возможно ли это вообще?

Mideon 06.09.2011 19:20

На самом деле он файл такого шрифта не находит, проверьте правильность пути до шрифта.

GBee 06.09.2011 19:22

Вряд ли так зя вообще.

Mideon 06.09.2011 19:22

И нужно добавить mimeType="application/x-font"
Код AS3:

[Embed(source='../assets/MyriadWebPro.ttf', 
        fontName='myMyriadFont',
        mimeType='application/x-font'
    )]

http://livedocs.adobe.com/flex/3/htm...=fonts_04.html

Kidd002 06.09.2011 19:28

Динмическая загрузка шрифтов делается по другому.
Первая ссылка из гугла: http://riapriority.com/blogs/slon-vs...ding_flash_cs3
Также можешь заглянуть сюда: http://etcs.ru/blog/as3/fontloader/

Universe 15.09.2011 00:23

помоему это всё не то! Компиля дополнительные swf мы ничего не решаем. Насколько я понял, клиенту нужно закинуть в папку шрифты и не парится с чем то ещё типа дополнительной компиляции в swf. Возможно стоит создавать при помощи пхп as файл Assets.as, предварительно передавая в пхп информацию в xml по нужным шрифтам или ещё проще - чтобы пхп собрал все шрифты в указанной папке

BuKT 15.09.2011 07:40

А эмбед разве выполняется в рантайм?

wvxvw 15.09.2011 13:20

К сожалению так, как вы хотите не получится, компилятор на основе [Embed] метаданных создает дополнительный класс, линкует к нему указаный ресурс и инициализирует переменную ссылкой на ресурс. Компилятор не умеет выполнять ActionScript код во время компиляции (хотя некоторые простые арифметические или логические операции - может). На форуме уже как-то обсуждалась, даже несколько раз, тема генерации файлов ресурсов по шаблону. Я делал плагин для SamHaXe и Flashdevelop, и он, в принципе, если память не изменяет мог генерировать AS3 классы для линкования ресурсов тоже.
http://www.flasher.ru/forum/blog.php?b=187 смотрите опцию Expoprt > AS3 Classes. Или, если такой вариант не устраивает, вот, вариант генерации AS3 файлов через PHP шаблон: http://www.flasher.ru/forum/blog.php?b=188

Universe 18.09.2011 02:28

генерация вроде бы понятна, а вот как заставить всё это дело "самокомпилироваться", если это вообще возможно!:)

wvxvw 18.09.2011 14:57

Компилируйте библиотеку (у вас уже будет список всех классов, которые туда нужно включить), а потом эту библиотеку встраивайте в проект.
Условно говоря, если в Виндовсе:
Код:

echo "my-namespace" > my-manifest.xml
for /f %%ImageClassFile in ('dir /b *.as') do echo %%ImageClassFile >> my-manifest.xml

(это наибольшее, на что меня хватило, долго искать / разбираться как в батнике экранировать `<>' :) - просто записать файлы спиксом, но смысл в том, чтобы вывести их в виде файла-namspace (образцы можно посмотреть в SDK/framework/mx-manifest.xml например), в котором записаны все файлы нужные для компиляции).
Ну и потом:
Код:

compc -namespace "my-namespace" my-manifest.xml -in my-namespace -o images-library.swc
И когда собирать проект:
Код:

mxmlc -il images-library.swc


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

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