|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
"Error calling method on NPObject!" при вызове метода через JS
Давно не виделись
У меня вот такая странная проблема: У меня есть флешка, использующая google maps api. Мне потребовалось снять с нее скриншот таким образом, чтобы можно было получить к нему оступ из яваскрипта страницы. Выглядит, естественно, примерно так: //этот метод будет вызывать яваскрипт. //возвращает изображение в base64 function getEncodedScreenshot():String { var w:Number = stage.stageWidth; var h:Number = stage.stageWidth; var screenshotData:BitmapData = new BitmapData(w, h); screenshotData.draw(stage); return Base64.encodeByteArray( PNGEncoder.encode(screenshotData)); } // создаем коллбек для внешнего интефрейса try { ExternalInterface.addCallback('getScreenshot',getEncodedScreenshot); } catch(e:Error) { //среда не поддерживает внешний интерфейс. Например, запуск вне браузера } Если на странице вызвать , то консоль хрома выдает сообщение В фаерфоксе выглядит вот так: Флешка вставлена через SWFObject, плеер десятый. Параметр allowscriptaccess стоит в значении "always". Попробовал на всякий Security.AllowDomain("*") - не помогло. Из шизофреничных соображений попробовал также явно указать домены - тоже не помогло. Подскажите, пожалуйста, в чем может быть проблема :-\ Добавлено через 5 минут Локально, кстати, тоже не работает Добавлено через 2 часа 56 минут А вот интересно... если не опубликовывать с помощью SWFObject, а запустить обычный тест в браузере при публикации, то все работает. Неужели проблема из-за публикации с помощью SWFObject? Добавлено через 3 часа 12 минут Ух ты ж блин, заметил, что у меня не дебаговый плеер стоит. Поставил дебаговый и получил замечательное сообщение: SecurityError: Error #2122: Нарушение изолированной среды: BitmapData.draw: http://127.0.0.1:8000/i/flash/card_location.swf?ver=1.0.2 не может осуществить доступ к http://mt0.google.com/vt/lyrs=m@148&hl=ru&src=api&x=0&y=0&zoom=16&s=. Необходим файл политики, но, когда были загружены эти мультимедийные данные, флаг checkPolicyFile не был установлен. at flash.display::BitmapData/draw() at location_fla::Main/getEncodedScreenshot() at Function/http://adobe.com/AS3/2006/builtin::apply() at flash.external::ExternalInterface$/_callIn() at Function/<anonymous>()
__________________
Дело не в тебе |
|
|||||
Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
|
Грузить можете, показать можете, но draw сделать не можете! Поищите в блогах у Dimarik'a способы обхода этой штуки ))
|
|
|||||
Спасибо, посмотрю Странно, всегда казалось, что если нет разрешения в кроссдоменном файле, то и на сцену нельзя добавить изображение.
__________________
Дело не в тебе |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Можно, только срисовать нельзя.
|
|
|||||
Хех, вот этот пост http://www.flasher.ru/forum/blog.php?b=208 действительно многого стоит, но, к сожалению, мне ничем не поможет, т.к. у меня нет доступа непосредственно к изображениям (API не дает). Можно, конечно, распаковать swc и вручную модифицировать все, но это уже против правил использования API гугла.
Эх, придется им писать в поддержку и надеятся, что они разрешат отрисовывать карту, но я сильно сомневаюсь в таком исходе Добавлено через 2 минуты В реальной же жизни, видимо, придется искать серверное решение для снятия скриншотов.
__________________
Дело не в тебе Последний раз редактировалось AL.exe; 06.04.2011 в 15:00. |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Ну, можно просто сделать замену их класса.
|
|
|||||
Да, можно, но это опять идет против лицензионного соглашения (нельзя обращаться к файлам карты никак , кроме как посредством официального API, который предоставлен в виде swc). Если бы я делал это для себя, мне бы, в принципе, было бы на это наплевать. Но делаю для компании, которая нарушать соглашения не хочет
__________________
Дело не в тебе |
Часовой пояс GMT +4, время: 14:00. |
|
« Предыдущая тема | Следующая тема » |
Теги |
bitmapdata , externalinterface , javascript+flash |
Опции темы | |
Опции просмотра | |
|
|