Я использую Javascript для вызова метода на Flash-ролике, встроенном в ASPX-страницу, используя SWFObject.Он отлично работает в Firefox, но Internet Explorer 7 и 8 (пока) утверждают, что объект, возвращаемый swfobject.getObjectById()
«не поддерживает это свойство или метод».Я нашел похожие посты на этом и других сайтах, но ничего из того, что я пробовал, не исправило это в IE.
Класс ActionScript 3.0:
public class Player extends MovieClip {
public function Player()
{
Security.allowDomain("http://localhost");
ExternalInterface.addCallback("test", test);
}
public function test():void
{
debugBox.appendText("test() called successfully\n");
}
}
Разметка ASPX:
<head runat="server">
<script type="text/javascript" src="Scripts/swfobject.js"></script>
<script type="text/javascript">
swfobject.registerObject("myPlayer", "9.0.0", "scripts/expressInstall.swf");
</script>
</head>
<body>
<form id="form1" runat="server">
<div class="movie">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="640" height="640" id="myPlayer">
<param name="movie" value="Player.swf" />
<param name="allowscriptaccess" value="always" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="Player.swf" width="640" height="640">
<!--<![endif]-->
<a href="http://www.adobe.com/go/getflashplayer">
<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif"
alt="Get Adobe Flash player" />
</a>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
</div>
Далее в разметке ASPX код, который пытается получить объект Flash и вызвать для него метод test()
, происходит в обратном вызове AJAX от стороннего компонента (DevExpress ASPxHiddenField).Этот обратный вызов вызывается пользовательским вводом после загрузки фильма Flash:
<dx:ASPxHiddenField ID="filenameHiddenField" runat="server" OnCustomCallback="filenameHiddenField_CustomCallback"
SyncWithServer="False">
<ClientSideEvents EndCallback="function(s, e) {
var playerObject = swfobject.getObjectById("myPlayer");
playerObject.test();
}" />
</dx:ASPxHiddenField>
Internet Explorer жалуется на последнюю строку в этой функции: «Объект не поддерживает это свойство или метод».
Спасибо!