7

我有一个将文本加载到 Sprite 中的 swf,该 Sprite 根据放入的内容调整大小 - 我希望那些比页面长的页面让浏览器使用其本机滚动条而不是在 actionscript 中处理它(非常很像http://www.nike.com/nikeskateboarding/v3/ ...)

我确实看过耐克做的东西,但就是无法完成。有任何想法吗?

4

5 回答 5

7

诀窍是使用一些简单的 JavaScript 来调整 Flash DOM 节点的大小:

function resizeFlash( h ) {
    // "flash-node-id" is the ID of the embedded Flash movie
    document.getElementById("flash-node-id").style.height = h + "px";
}

您从 Flash 电影中调用它,如下所示:

ExternalInterface.call("resizeFlash", 400);

您实际上不需要在外部拥有 JavaScript 代码,如果您愿意,您可以从 Flash 中完成所有操作:

ExternalInterface.call(
    "function( id, h ) { document.getElementById(id).style.height = h + 'px'; }",
    ExternalInterface.objectID,
    400
);

匿名函数只是为了能够将 ID 和高度作为参数传入,而不是将它们连接到 JavaScript 字符串中。

我认为 JavaScript 是相当跨平台的。如果您想查看现场示例,请查看此站点:talkoftheweather.com。它可能看起来好像没有做任何事情,但它会自动调整 Flash 影片大小以适应所有新闻项目(它在加载新闻后立即执行此操作,完成速度如此之快以至于您不会注意到它的发生)。调整大小会强制浏览器显示垂直滚动条。

于 2008-08-29T15:59:24.750 回答
1

我从来没有这样做过,但我认为swffit可能能够成功。

于 2008-08-28T18:15:32.527 回答
0

我看了一半 swffit 但高度(有时和宽度,但主要是高度)将是动态的 - swffit 让你声明一个 maxHeight 但这个数字会不断变化......也许我可以弄清楚如何动态设置它。不过,这对我来说是个不错的起点-谢谢!

于 2008-08-28T18:29:22.337 回答
0

我主要使用 if for 是为了限制你可以制作一个“fullbrowser”flash 的大小,为此它工作得很好。快乐黑客!

(别忘了在这里发布你的发现,我可能需要它太快了;))

于 2008-08-28T18:36:06.347 回答
0

SWFS大小

有关更多详细信息,请参见此处

Intuitsolutions.ca

于 2010-04-21T20:49:15.050 回答