Решил добавить рекламный баннер. Приложение на flex 4. Рекомендуют вставлять так:

Код AS3:
var wide:SpesitBanner = new SpesitBanner(BannerType.WIDE);
addChild(wide);
В результате пишет ошибку
TypeError: Error #1034: Ошибка типа Coercion: невозможно преобразовать ru.spesit.ads.containers.vk::SpesitBanner@49cb849 в mx.core.IUIComponent.
atmx.core::Container/http://www.adobe.com/2006/flex/mx/internal::addingChild()
atmx.core::Container/addChildAt()
atmx.core::Container/addChild()
Пробовал и напрямую вставить, и через mx контейнер. Никак...
Сам этот SpesitBanner.as

Код AS3:
package ru.spesit.ads.containers.vk
{
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.net.URLRequest;
import flash.system.ApplicationDomain;
import flash.system.LoaderContext;
import flash.system.Security;
import flash.system.SecurityDomain;
/**
* Class SpesitBanner ...
* @author Yuriy (Mur4ik) Kulkoff
* @version 0.1
* @date 06.10.2010
*/
public class SpesitBanner extends Sprite
{
private var _type:String;
private var _autoLoad:Boolean;
private var _loadURL:String;
private var _container:Loader;
public function SpesitBanner(bannerType:String, autoLoadBanner:Boolean = true)
{
Security.allowDomain("http://adv.spes-it.ru/");
_type = bannerType;
_autoLoad = autoLoadBanner;
mouseEnabled = false;
addEventListener(Event.ADDED_TO_STAGE, initInstance);
}
//=============================================================================
//{region PUBLIC METHODS
//=============================================================================
public function loadBanner():void
{
switch (_type)
{
case BannerType.WIDE:
_loadURL = 'http://adv.spes-it.ru/swf/containers/vk_570x100.swf';
break;
/*case BannerType.RICHMEDIA:
_loadURL = 'http://adv.spes-it.ru/swf/containers/vk_430x200.swf';
break;*/
case BannerType.VERTICAL:
_loadURL = 'http://adv.spes-it.ru/swf/containers/vk_160x510.swf';
break;
case BannerType.USUAL:
_loadURL = 'http://adv.spes-it.ru/swf/containers/vk_430x190.swf';
break;
default: trace("Неподдерживаемый тип баннера: " + _type);
}
_container = new Loader();
_container.contentLoaderInfo.addEventListener(Event.COMPLETE, banner_loadCompleteHandler);
_container.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, banner_loadErrorHandler);
try
{
_container.load(
new URLRequest(_loadURL + "?spesit_pid=" + PartnerConfig.PID + "&spesit_sid=" + PartnerConfig.SID),
new LoaderContext(false, ApplicationDomain.currentDomain, SecurityDomain.currentDomain)
);
}
catch (err:Error)
{
trace("Local security warning!!! Boooo!");
_container.load(
new URLRequest(_loadURL + "?spesit_pid=" + PartnerConfig.PID + "&spesit_sid=" + PartnerConfig.SID),
new LoaderContext(false, ApplicationDomain.currentDomain)
);
}
}
//} endregion PUBLIC METHODS ==================================================
//=============================================================================
//{region PRIVATE/PROTECTED METHODS
//=============================================================================
private function initInstance(event:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, initInstance);
if (_autoLoad) loadBanner();
}
private function checkSession():void
{
}
//} endregion PRIVATE METHODS =================================================
//=============================================================================
//{region EVENTS HANDLERS
//=============================================================================
private function banner_loadErrorHandler(event:IOErrorEvent):void
{
trace( "WideShell.banner_loadErrorHandler > event : " + event );
}
private function banner_loadCompleteHandler(event:Event):void
{
addChild(_container.content);
}
//} endregion EVENTS HANDLERS =================================================
//=============================================================================
//{region GETTERS/SETTERS
//=============================================================================
//} endregion GETTERS/SETTERS =================================================
}
}
Добавлено через 2 минуты
addElement тоже неработает
1067: Неявное приведение значения типа flash.display:Sprite к несоответствующему типу mx.core:IVisualElement
Добавлено через 1 час 3 минуты
Такой способ ошибки не вызывает, но баннера не видно.

Код AS3:
var ui:UIComponent = new UIComponent();
var advbanner:SpesitBanner = new SpesitBanner(BannerType.WIDE);
ui.addChild(advbanner);
ui.x = 95;
ui.y = 909;
this.addElement(ui);
Добавлено через 1 час 17 минут
Создал

Код AS3:
<s:SpriteVisualElement id="con" x="95" y="909" width="570" height="118"/>
И при инициализации приложения

Код AS3:
var advbanner:SpesitBanner = new SpesitBanner(BannerType.WIDE);
con.addChild(advbanner);
Ошибок и баннера - нет
