У меня проблема с получением ExternalInterface.callBack (); работать в конкретном случае, когда я динамически добавляю теги объекта и встраиваю вот так:
function createBannerObject(swfURL,flashVars, searchParams)
{
/* swfURL -- our template URL
videoURL -- user video URL
backURL -- background picture URL
flashVars -- other user preferences -- string
searchParam -- param for word search -- array */
var flashDiv = document.createElement('div');
flashDiv.id = 'flashvideo';
flashDiv.style.width='1px';
flashDiv.style.height='1px';
// id = myMovie, name = myMovie ------------------------//
flashDiv.innerHTML = '<object id="myMovie" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="100%" height="100%" align="left"><param name="bgcolor" value="#faa"><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="false" /><param name="movie" value="'+swfURL+'" /><param name="flashvars" value="'+flashVars+'" /><param name="quality" value="high" /><param name="wmode" value="opague" /><embed name="myMovie" src="'+swfURL+'" quality="high" width="100%" height="100%" align="left" allowScriptAccess="always" allowFullScreen="false" bgcolor="#cccccc" wmode="opaque" flashvars="'+flashVars+'" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object>';
//----------------------------------------------------------
var search = ad_createDomElem('div',false);
search.style.display = 'none';
var searchWord = ad_createDomElem('p',{'id':'keyword'});
searchWord.innerHTML = searchParams[0];
var searchDiv = ad_createDomElem('p',{'id':'search'});
searchDiv.innerHTML = searchParams[1];
var regex1 = ad_createDomElem('p',{'id':'regex1'});
regex1.innerHTML = searchParams[2];
var regex2 = ad_createDomElem('p',{'id':'regex2'});
regex2.innerHTML = searchParams[3];
search.appendChild(searchWord);
search.appendChild(searchDiv);
search.appendChild(regex1);
search.appendChild(regex2);
//-----------------------------------------------------------
flashDiv.appendChild(search);
//-----------------------------------------------------------
document.body.appendChild(flashDiv);
}
Теперь вот моя функция getMovie (как и у всех остальных)
function getMovie(string)
{
var M$ = navigator.appName.indexOf("Microsoft")!=-1;
if(navigator.userAgent.indexOf('MSIE 9.0')) M$ = false;
return (M$ ? window : document)[string];
}
Вот страница, на которой он не работает:
http://banners.adfox.ru/110811/adfox/156416/inDynamic.html
Вот страница, на которой он работает: разница в том, что flash не добавляется динамически:
http://banners.adfox.ru/110811/adfox/156416/onpage.html
Все JS могут быть просмотрены через источник =)
Теперь о AS3 я использую код:
Security.allowDomain('*');
ExternalInterface.addCallback("playVideoOnOpen", playVideoOnOpen);
ExternalInterface.addCallback("pauseVideoOnClose", pauseVideoOnClose);
function playVideoOnOpen()
{
}
function pauseVideoOnClose()
{
}
Мне удалось выделить проблему следующим образом:
http://banners.adfox.ru/110811/adfox/156416/dynamicAddEasy.html
Опять все JS внутри
Вопрос: что может пойти не так, если я добавлю вспышку динамически? Или это что-то еще?