【发布时间】:2010-12-16 02:06:12
【问题描述】:
您好。
我正在为一个 Flash-HTML 混合网站开发一个动画主页,为了标准,我的解决方案被证明是困难的。我不是 Javascript 专业人士,因此不胜感激!
这是破败:
对于 Flash 用户,HTML 页面会加载可变高度的 AS3 Flash 影片,该影片将从 556 像素高开始,并在完成其动画序列后,通过 Actionscript + JavaScript 补间到 250 像素高。
要开始这个电影序列 -- (左下) -- 我正在尝试通过 MooTools 设置 Flash 电影的初始高度,所以如果用户没有启用 Flash 或 Javascript ,他们将看到具有替代图像内容和 HTML 内容显示的较短高度的图像区域(右下方)。
Element.setStyle 将高度设置得很好,直到 swfObject 运行,此时电影折叠,因为我没有通过 CSS 指定高度。如果用户没有 Flash,则默认为静态图片的高度。
所以这是我的问题:有谁知道如何将高度变量设置为宽度/高度 @ 100% 时动态传递给 swfobject?我是否会无缘无故地尝试使用两个页面高度?
图像序列:
左 - 下面带有 HTML 导航的初始 Flash 影片
右 - 在序列末尾调整大小的电影,下面带有 HTML 导航和内容,看起来与非 Flash 版本相同(静态图像)
alt text http://client.deicreative.com/op/images/twopages.jpg
^^ should land here for users w/o Flash
<script type="text/javascript">
<!--
window.addEvent('domready', function() {
$('flashContent').setStyle('height', 556); // sets height for initial movie
$('homeContent').setStyle('display', 'none'); // hides homepage text + photos below
doSwfObject(); // attempting to start swfObject after setStyle is done
});
function resizePage(h) { // to be called from AS3
var tweenObj = new Fx.Tween('flashContent');
tweenObj.start('height', h);
}
function doSwfObject(){
var flashvars = {};
var params = { scale: "noScale" };
var attributes = { id: "flashContent", name: "flashContent" };
swfobject.embedSWF("swf/homeMovie.swf", "flashContent", "100%", "100%", "9.0.0", false, flashvars, params, attributes);
alert(document.getElementById('flashContent').style.height);
// alerts & shows correct height, but page collapses after hitting 'ok'
}
//-->
</script>
【问题讨论】:
标签: javascript flash mootools swfobject tween