2009-02-03 5 views
2

Я сбрасываю некоторые ActionScript 3 в ActionScript 2 (некоторые рекламные агентства, к сожалению, все еще отказываются охватить будущее), и я столкнулся с проблемой, что в ActionScript 2 ExternalInterface не имеет свойства objectID, как в ActionScript 3.Есть ли обходной путь для недостающего ExternalInterface.objectID в ActionScript 2

Код, над которым я работаю, вызывает много JavaScript, а часть этого кода требует, чтобы скрипт знал идентификатор объекта Flash/embed (для пример, чтобы найти позицию на странице и изменить ее размер/вставить).

Есть ли простой способ обхода объекта/embed ID в ActionScript 2?

Мне удалось написать код JavaScript, который в основном ищет все объекты и внедряет узлы на странице, пока не найдет один со специальным методом (установленным с ExternalInterface.addCallback), и таким образом удалось получить идентификатор в среде ActionScript, но это похоже на хакерский и небезопасный метод, на который можно положиться. Конечно, есть более простой способ?

Редактировать: У меня нет контроля над кодом, который вставляет SWF, поэтому передача идентификатора не работает.

ответ

2

Это то, что вы ищете? Простой класс ActionScript 2, который считает, что ему принадлежит идентификатор объекта html.

http://sourceblogg.se/lang/en/mina-projekt/isitme-get-flash-html-object-id-within-flash/

+0

Это более или менее то, что я уже делаю, но хорошо знать, что кто-то другой пришел к такому же выводу. – Theo

+0

Эта ссылка больше не содержит загрузок, получила какие-либо идеи для альтернативы? – soulBit

0

Как насчет передачи идентификатора в SWF через FlashVars? Вы должны знать ID при его встраивании, поэтому достаточно просто добавить его как одну из переменных FlashVars, переданных в Flash. Затем сохраните, что где-то ваш код, который вызывает ExternalInterface, может получить от него.

+0

Должен отметить, что у меня нет контроля над кодом, который вкладывается в SWF. – Theo

0

Попробуйте Flash Javascript Integration kit http://weblogs.macromedia.com/flashjavascript/. Насколько я знаю, класс ExternalInterface в AS3 был формализацией этого решения AS2.

+0

Для этого требуется, чтобы вы знали идентификатор объекта заранее. – Theo

 Смежные вопросы

  • Нет связанных вопросов^_^