我网站的每个页面上都有一个闪光横幅。我希望它继续播放,而不是在用户更改页面时重新加载。我读到这可以使用 flashvar 来实现,但是,自从我做任何动作脚本以来已经有一段时间了。我尝试查找教程无济于事。有人可以指出我正确的方向吗?
更新
感谢您的评论。我现在在我的 fla 文件的第 1 帧上有这个:
var mySharedObject:SharedObject = SharedObject.getLocal("displayCookie");
if(mySharedObject.data.displayed == true){
gotoAndPlay(currentFrame);
trace("cookie found");
}else{
trace("cookie not found, setting it now");
//do whatever if NOT already been played
mySharedObject.data.displayed = true;
mySharedObject.flush();
}
但是我不知道如何为当前帧提供刷新页面时的值。我怎么把它放在那里?
对不起我的菜鸟
在 SharedObject 代码的基础上,你可以做这样的事情:
在第 1 帧上:
var mySharedObject:SharedObject = SharedObject.getLocal("displayCookie");
addEventListener(Event.ENTER_FRAME, checkLoadedFrames);
function checkLoadedFrames(e:Event):void {
if(this.framesLoaded == this.totalFrames) {
removeEventListener(Event.ENTER_FRAME, checkLoadedFrames);
checkSharedObject();
}
}
function checkSharedObject():void {
if(mySharedObject.data.currentFrame){
gotoAndPlay(mySharedObject.data.currentFrame);
}
addEventListener(Event.ENTER_FRAME, saveCurrentFrame);
}
function saveCurrentFrame(e:Event):void {
mySharedObject.data.currentFrame = this.currentFrame;
}
它可能比仅仅使用FlashVars要复杂一些。用户导航到下一页后,您还需要使用一些外部接口来获取横幅的当前框架。(注意:我正在使用jQuery和swfobject)
首先,javascript是这样的:
var flashObj;
$(document).ready(function() {
if (navigator.appName.indexOf("Microsoft") != -1) {
flashObj = window["flash"];
} else {
flashObj = document["flash"];
}
});
function embedPlayer() {
var flashvars = {};
if (swfobject.getQueryParamValue("frame")) {
flashvars.bannerframe = swfobject.getQueryParamValue("frame");
} else {
flashvars.bannerframe = 1;
}
var params = {};
var attributes = {};
swfobject.embedSWF("swf/Main.swf", "flash", "800", "600", "10.0.0", "swf/expressInstall.swf", flashvars, params, attributes);
}
function getBannerFrame() {
return flashObj.checkCurrentFrame();
}
然后,在第 1 帧的 FLA 中,您将拥有:
var frame:Number = Number(root.loaderInfo.parameters.bannerframe);
if (!isNaN(frame)) {
gotoAndPlay(frame);
}
ExternalInterface.addCallback("checkCurrentFrame", checkCurrentFrame);
function checkCurrentFrame():int {
return this.currentFrame;
}
现在,每当您导航到另一个页面时,您只需使用checkCurrentFrame();
将当前框架附加到查询字符串