Загрузка растрового изображения из библиотеки flash

ХОРОШО!! Я создал игру, которая захватывает tileSheet (растровое изображение) и некоторые файлы xml из внешнего источника (не из библиотеки). Оказывается, это плохая идея, если я хочу опубликовать свою игру на большинстве сайтов. Потому что большинство сайтов дают мне возможность загрузить только один файл. СЕЙЧАС мне нужно придумать альтернативу.

Я пытался сделать междоменную вещь, но это боль, потому что я сталкиваюсь с некоторыми проблемами безопасности, с которыми я не знаю, как справиться. Я сделал отдельный пост для этой проблемы с моим кодом в нем. Но теперь мне нужно знать, есть ли надежда получше.

Имеет смысл, что, возможно, я мог бы загрузить растровое изображение из библиотеки. Если кто-то знает, как это сделать, пожалуйста, поделитесь. Но как насчет ситуации с xml ?? я сильно облажался, когда дело доходит до этого?? Нельзя ли собрать игру, которая читает xml файл и растровые изображения из одного файла??


person numerical25    schedule 07.02.2010    source источник


Ответы (3)


Вы говорите о встраивании изображения и некоторого XML в ваш файл .swf? Я полагаю, для этого требуется mxmlc.

Для изображения (AS3):

[Embed(source='image.png')]
private var myImage:Class;
private var ball1:Bitmap = new myImage();

Для некоторого XML (AS3):

private var myXML:XML = <rootNode><anotherNode someProp="foo"/></rootNode>
person Newtang    schedule 07.02.2010
comment
Да, это то, что мне нужно!!!! Но у меня только флэш?!?!?! Я не могу сделать это с flash ?? - person numerical25; 07.02.2010
comment
У меня такое чувство, что мне, вероятно, придется переделывать все это во флеш-разработке. - person numerical25; 07.02.2010
comment
Во Flash CS4 с XML все в порядке. Это просто ActionScript. Для изображения вы можете добавить изображение в свою библиотеку и дать ему имя связи. Затем вы можете использовать: var myImage:Bitmap = new LinkageName(); - person Newtang; 08.02.2010

Вы хотите встроить изображения и файл XML в SWF.

[Embed(source="../assets/mytiles.bmp")]
var MyTiles:Class;

// When you need the Bitmap:
var myTiles:Bitmap = new MyTiles();

Вам потребуется использовать mxmlc, который поставляется с Flex SDK.

Дополнительная информация: встраивайте практически все что угодно в свой SWF, Справка по Adobe Flex 3: встраивание типов активов

Изменить: Использование Flex SDK с Flash CS4 описывает, как настроить Flash CS4, чтобы можно было использовать такие функции Flex, как тег Embed. Я не думаю, что CS3 имеет аналогичную функцию; вам нужно будет выполнить компиляцию вручную или с помощью внешней IDE, такой как FlashDevelop в таком случае.

person Selene    schedule 07.02.2010
comment
У меня только вспышка. Можно ли не делать это с вспышкой?? - person numerical25; 07.02.2010

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

Да, вам нужно будет загрузить все изображения, которые вам понадобятся в будущем, поэтому, если у вас есть игра с 50 уровнями, а большинству пользователей нужны только изображения, используемые в первых 20, вам нужно будет загрузить все. Хотя есть способ обойти это, это довольно сложно.

Еще одна приятная особенность этих SWC заключается в том, что вы можете иметь 20 из них, каждый из которых содержит разные активы, и вызывать их, когда хотите. Например, у меня есть библиотека swc, содержащая все компоненты. Компилятор flex поместит в окончательный swf только то содержимое, которое вам нужно, поэтому, если у вас есть активы в SWC, которые вы не используете, они не будут излишне раздувать ваш файл.

Вы также обнаружите, что многие библиотеки теперь доступны в формате swc, например API Google.

person Daniel    schedule 07.02.2010