Я использую следующий код AS3 для загрузки внешнего SWF (один с размерами, которые мне не нравятся) в другой SWF. При просмотре SWF-файла загрузчика, когда он встроен в HTML-страницу, ничего не отображается, даже если SWF-файл загрузчика без проблем отображает вложенный SWF-файл.
package
{
import flash.display.Loader;
import flash.display.MovieClip;
import flash.net.URLRequest;
import flash.events.Event;
public class Main extends MovieClip
{
private var swfLoader:Loader;
public function Main()
{
swfLoader = new Loader();
swfLoader.load(new URLRequest("nested.swf"));
swfLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
}
private function loadComplete(e:Event)
{
addChild(swfLoader);
}
}
}
А вот HTML-код, который я использую:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>
<link href="../includes/samplestyle.css" rel="stylesheet" type="text/css"/>
<script src="../Scripts/swfobject_modified.js" type="text/javascript"></script>
<script language="javascript">AC_FL_RunContent = 0;</script>
<script src="../includes/AC_RunActiveContent.js" language="javascript"></script>
</head>
<body style="background-color: transparent;">
<script language="javascript">
if (AC_FL_RunContent == 0) {
alert("This page requires AC_RunActiveContent.js.");
} else {
AC_FL_RunContent(
'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0',
'width', '320',
'height', '240',
'src', 'includes/loaderSwf',
'quality', 'high',
'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
'align', 'middle',
'play', 'true',
'loop', 'true',
'scale', 'showall',
'wmode', 'transparent',
'devicefont', 'false',
'id', 'includes/loaderSwf',
'bgcolor', '#ffffff',
'name', 'includes/loaderSwf',
'menu', 'true',
'allowFullScreen', 'false',
'allowScriptAccess','sameDomain',
'movie', '../includes/loaderSwf',
'salign', ''
); //end AC code
}
</script>
<noscript>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="320" height="240" id="includes/loaderSwf" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="allowFullScreen" value="false" />
<param name="movie" value="../includes/loaderSwf.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /> <embed src="../includes/loaderSwf.swf" quality="high" bgcolor="#ffffff" width="320" height="240" name="includes/loaderSwf" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
</noscript>
</body>
</html>
Если я подставлю имя «loaderSwf» вложенным именем SWF, оно будет воспроизводиться нормально. Кажется, что локальная страница HTML не нравится тот факт, что я играю SWF через другой SWF. У кого-нибудь есть на это что-нибудь?