Есть ли способ загрузить внешний SWF в песочницу во флэш-памяти? - PullRequest
1 голос
/ 30 марта 2009

Я загружаю флеш-рекламные баннеры на весь свой флеш-сайт с помощью Loader. Я не контролирую код внутри баннеров, так как они исходят от рекламодателей.

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

Бонусный вопрос, как я могу решить проблемы, вызванные тем, что у баннеров частота кадров отличается от частоты основного сайта? (Или есть простой способ конвертировать в настоящее время нарисованные анимации в мою частоту кадров, сохраняя скорость анимации такой же, как раньше?)

Должны быть люди, которые занимались этими вопросами раньше.

Какой лучший способ сделать это?

Спасибо!

Ответы [ 3 ]

1 голос
/ 30 марта 2009

При загрузке внешнего SWF-файла убедитесь, что он загружен в отдельный домен безопасности и в дочерний домен приложения. Таким образом, он не сможет получить доступ к событиям мыши и клавиатуры стадии (и некоторым другим), и не будет никаких конфликтов определений классов.

Ознакомьтесь с этим документом: Разработка и загрузка субприложений

1 голос
/ 30 марта 2009

Теоретически, загруженный SWF не имеет доступа к родительским объектам и переменным без разрешения. Подробнее о Security.allowDomain вы можете прочитать здесь . Если вы не используете allowDomain () в домене баннера, он не сможет вызывать объекты на вашем веб-сайте.

Вы также можете выполнить одно или несколько из следующих действий:

  • создать маску для объекта Loader баннера, чтобы предотвратить расширение баннера больше, чем ему назначено места

  • используйте свойство mouseChildren , чтобы отключить все события мыши для объекта Loader.content, а затем добавить событие одиночного щелчка в Loader для навигации к целевой странице баннера

Я сам играл с частотой кадров, но безрезультатно. Кажется, что ребенок во всех случаях соблюдает частоту кадров родителей. Единственное, что сработало, - это остановка автоматического повышения частоты кадров для ребенка и выполнение этого через TimerEvent, но это приводит к дополнительной загрузке процессора.

0 голосов
/ 11 августа 2010

Я только что нашел Adobe PDF по этому поводу: Загрузка приложений .

...