Отправка данных в приложение Flex 3 из SWF (версия 7) - PullRequest
1 голос
/ 03 января 2009

Кто-нибудь знает, как взять swf (версия 7) и использовать SwfLoader или что-то подобное для доступа к корневой переменной в swf из приложения Flex? Я перепробовал много вещей без успеха. Я не хочу загромождать этот пост всеми своими неудачными попытками, но я опубликую их позже, если увижу, что они нужны в качестве примеров.

Просто некоторая предыстория: я генерирую SWF-файл в .NET, а используемая мной библиотека может генерировать SWF-файлы только до версии 7. Приложение Flex создается с помощью Flex 3. Мне нужен доступ к переменным в SWF. Мне все равно, как это делается, Пока я могу это сделать. Неважно, что я барботирую событие, использую LocalConnection или напрямую обращаюсь к переменным, мне не повезло делать что-либо до этого момента. (SWF действительно загружается, хотя ... и отображается в моем приложении Flex).

О, и SWF не вставлен.

Ответы [ 2 ]

1 голос
/ 03 января 2009

ExternalInterface был доступен начиная с версии 1.0, так что это может быть решением ваших проблем. С помощью класса ExternalInterface actioncript может взаимодействовать с javascript и наоборот. Таким образом, вы можете передать переменную в функцию javascript из swf, и эта функция javascript передаст эту же переменную в функцию в приложении FLEX. Я не хочу писать весь код, если только это не звучит так, как будто это может быть ответ, который вы ищете, в этом случае дайте мне знать, и я напишу код для вас, или просто ...

Проверьте это: ExternalInterface

0 голосов
/ 03 января 2009

Когда вы загружаете SWF, который нацелен на FP8 или более раннюю версию, он загружается как экземпляр AVM1Movie. Из документов:

"Объект AVM1Movie может использовать методы и свойства, унаследованные от класса DisplayObject (например, x, y, width и т. Д.). Однако совместимость (например, вызов методов или использование параметров) между объектом AVM1Movie и AVM2 отсутствует. объекты разрешены. "

Это связано с тем, что FlashPlayer 9+ на самом деле имеет две разные виртуальные машины, и они не могут напрямую взаимодействовать друг с другом.

LocalConnection определенно будет работать в этом сценарии: я использовал SWF v7 с приложением Flex 2 и имел связь (через вызов метода), работающую из v7 -> Flex2 и Flex2 -> v7. Я бы посмотрел, как ты это настраиваешь, потому что это точно сработает.

...