【发布时间】:2010-06-10 10:03:22
【问题描述】:
我为第三方软件生成的 Flash 查看器开发了一个小型控制栏。它有一个 First、Prev、Next 和 Last 按钮,以及一个 Zoom 命令。
虽然 Zoom 在所有浏览器中都能正常工作,但导航按钮在 Internet Explorer 8 上似乎失败了。
我至少使用了两个函数。这个定位我要操作的 Flash 对象:
function getFlashMovieObject(movieName)
{
if (window.document[movieName])
{
return window.document[movieName];
}
if (navigator.appName.indexOf("Microsoft Internet")==-1)
{
if (document.embeds && document.embeds[movieName])
return document.embeds[movieName];
}
else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
{
return document.getElementById(movieName);
}
}
...这些中的任何一个都处理框架导航:
var currentFrame = 0;
function gotoFirst(id)
{
getFlashMovieObject(id + "Blueprints").Rewind();
currentFrame = 0;
$("currentFrame").innerHTML = currentFrame + 1;
$("frameTitle").innerHTML = frameTitles[id][currentFrame];
}
function gotoPrev(id)
{
var movie = getFlashMovieObject(id + "Blueprints");
if (currentFrame > 0)
{
currentFrame--;
}
movie.GotoFrame(currentFrame);
$("currentFrame").innerHTML = currentFrame + 1;
$("frameTitle").innerHTML = frameTitles[id][currentFrame];
}
function gotoNext(id)
{
var movie = getFlashMovieObject(id + "Blueprints");
if (currentFrame < movie.TotalFrames() - 1)
{
currentFrame++;
}
movie.GotoFrame(currentFrame);
$("currentFrame").innerHTML = currentFrame + 1;
$("frameTitle").innerHTML = frameTitles[id][currentFrame];
}
function gotoLast(id)
{
var movie = getFlashMovieObject(id + "Blueprints");
currentFrame = movie.TotalFrames() - 1;
movie.GotoFrame(currentFrame);
$("currentFrame").innerHTML = currentFrame + 1;
$("frameTitle").innerHTML = frameTitles[id][currentFrame];
}
顺便说一句,$ 是 MooTools,而不是 jQuery。
无论如何,IE 在movie.TotalFrames() 调用时死掉了。我能做些什么来解决这个问题?请记住,我需要通过 JavaScript 完成此操作,因为我无法编辑 SWF。
【问题讨论】:
标签: javascript flash