Я работаю над проектом Flash Mobile в Flash Builder 4.7. Я получаю 4 ошибки «Проблема с Flex» при встраивании источника искрового объекта SWFLoader в MXML. Ошибки, которые я получаю, возникают в ряде Flex SDK, от 4.6 до 4.14. В течение многих лет у меня не было проблем с таким встраиванием, но в последнее время это начало возникать. Подобный код работает на компьютере коллег, несмотря на то, что все наши настройки кажутся идентичными. Чтобы устранить эту ошибку, я создал новый проект Flex Mobile с единственным кодом в MXML:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark">
<s:SWFLoader source="@Embed(source='Logo.swf')"/>
</s:Application>
Я получаю следующие ошибки:
1084: Syntax error: expecting rightbrace before end of program. line 29
1084: Syntax error: expecting rightbrace before stream. line 25
1084: Syntax error: expecting rightparen before s. line 25
1094: Syntax error: A string literal must be terminated before the line break. line 25
Путь для ошибок не указан. В моем проекте явно нет строк 25 или 29, поэтому я не знаю, где вообще могла возникнуть эта ошибка.
Файл Logo.swf находится в нужном месте. Это просто векторная графика без кода сценария действий.
РЕДАКТИРОВАТЬ: источником проблемы, по-видимому, является сама природа встраивания SWF, даже внешнего по отношению к SWFLoader. Приведенный ниже код MXML со встроенным скриптом вместо встроенного SWFLoader дает те же 4 ошибки, что и предыдущий:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark">
<fx:Script>
<![CDATA[
[Embed(source="Logo.swf")]
[Bindable]
public var swfCls:Class;
]]>
</fx:Script>
</s:Application>