Страница 1 из 1

Использование API во вложенном SWF

Добавлено: 14 сен 2011, 10:09
liweb
Ситуация такая: есть приложение swf в Вконтакте, в который загружается дополнительный SWF. Из дополнительного SWF вызывается метод API wall.post для размещения сообщения на стену пользователя, который установил основное приложение. Выдается ошибка invalid API ID. А при вызове метода прямо из второго SWF все получается. Как быть?

Re: Использование API во вложенном SWF

Добавлено: 14 сен 2011, 12:02
ChineseBeemaster
у меня вызов так идет

первый SWF

Код: Выделить всё

             var _class_name: String = !_is_wall ? ('Application') : ('ApplicationWall');            var _app_domain: ApplicationDomain = _loader.contentLoaderInfo.applicationDomain;            var _class: Class = _app_domain.getDefinition(_class_name) as Class;                 // Основное приложение                application = new _class(_flash_vars, _wrapper); 
в конструкторе второго

Код: Выделить всё

         public function Application(_vars: Object = null, _w: Object = null) : void         {            // Ссылка на себя            application = this;            // Контейнер            _wrapper = _w;            // Безопасность (загрузка с URL)            Security.allowDomain("*");            // Параметры загрузки флешки            _flash_vars = !_vars ? ( { } ) : (_vars);             if (stage)            {                onAddedToStage();            }            else            {                addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);            }        } 
я использую контейнер, и во вроторой SWF передаю все flashVars и сам Wrapper для обращения к API

Re: Использование API во вложенном SWF

Добавлено: 14 сен 2011, 13:25
liweb
а где подгрузка второго swf происходит?

Re: Использование API во вложенном SWF

Добавлено: 14 сен 2011, 15:59
ChineseBeemaster

Код: Выделить всё

                 // Формируем адрес загружаемой SWF                var _url: String = '_____URL______'                var _url_request: URLRequest = new URLRequest(_url);                var _context: LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain, SecurityDomain.currentDomain);                                if (new LocalConnection().domain == 'localhost')                {                    _loader.load(_url_request);                }                else                {                    _loader.load(_url_request, _context);                }                // Слушатели                addListeners(_loader.contentLoaderInfo); 
addListeners

Код: Выделить всё

         private function addListeners(_listener: IEventDispatcher) : void        {            _listener.addEventListener(Event.COMPLETE, completeHandler);            _listener.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);            _listener.addEventListener(Event.INIT, initHandler);            _listener.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);            _listener.addEventListener(Event.OPEN, openHandler);            _listener.addEventListener(ProgressEvent.PROGRESS, progressHandler);            _listener.addEventListener(Event.UNLOAD, unLoadHandler);        } 
completeHandler - то что я писал в первый раз ....

Re: Использование API во вложенном SWF

Добавлено: 20 сен 2011, 10:05
liweb
Спасибо, но, Блин-блинский, как все мудрено...

Re: Использование API во вложенном SWF

Добавлено: 21 сен 2011, 22:52
ChineseBeemaster
а как ты хотел :)))))