Использование функции BitmapData
draw(IDrawable)
является простым, если все совпадает SecurityDomain
.
Использование этой техники возможно только в том случае, если SecurityDomain
каждого загруженного элемента, который вы 'Вы пытаетесь выполнить рендеринг, чтобы принять домен кода, который делает запрос (вероятно, домен SWF).
Проверьте документы для BitmapData.draw (IDrawable) .Он говорит, что выдает SecurityError
, когда:
Исходный объект и (в случае объекта Sprite или MovieClip) все его дочерние объекты не поступают из того же домена, что и вызывающая сторонаили не находятся в содержимом, которое доступно вызывающей стороне, вызвав метод Security.allowDomain ().Это ограничение не распространяется на содержимое AIR в изолированной программной среде безопасности приложения.
В результате этого вы используете стандарт Loader
для загрузки содержимого из домена, который вы не контролируетевы не можете создавать «моментальные снимки» растровых изображений любого DisplayObjectContainer, который содержит это содержимое (если только это не разрешает доступ со всех доменов или вашего домена явно).Если вы do управляете доменами, вы сможете заставить его работать, используя crossdomain.xml (для содержимого, отличного от SWF) или Security.allowDomain()
вызовы для содержимого SWF.Загруженный SWF должен сделать вызов allowDomain
.
(Кроме того, если вы просто пытаетесь получить снимки, включая статические изображения, из других доменов, таких как JPG или GIF, вы можете загрузить данные изображения напрямуюи декодировать его в растровое изображение с помощью соответствующего декодера AS3 (вместо использования стандартного Loader
), что позволяет делать его растровые снимки.)