javascript 传一个值给 flash 老搞不定,详情请进来谈

Go_Rush 2006-04-13 05:19:47
1.程序功能:javascript 代码 传一个参数给 flash,flash取得这个参数后根据参数指定的图象,在flash内展示这个图象
2.为了便于测试,可在同目录下随便放 1.jpg, 2.jpg,3.jpg这三个图象文件,可以修改 pURL=1.jpg 这里看效果

<script>
function f_change(){
document.all("oflash").SetVariable("FlashVars","pURL=2.jpg")
}
</script>

<OBJECT id=oflash classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"
style="WIDTH: 450px; HEIGHT: 450px;Border:1px" VIEWASTEXT allowscriptaccess="always" swLiveConnect="true">
<PARAM NAME="movie" VALUE="t.swf">
<PARAM NAME="quality" VALUE="high">
<PARAM NAME="FlashVars" id="FlashVars" VALUE="pURL=1.jpg">
</OBJECT><br>
<button onclick="javascript:f_change()" >改变</button>


我把我的代码放在 http://yyzw.cn/ttt/1.htm
并做了一个在线 javascript 调试器,可以直接修改代码直接看修改后的效果的,用来测试的图象也上传到了1.htm所在的目录



我的问题是
为什么直接修改html中 "pURL=1.jpg" 这里可以看到修改后的效果
而通过javascript代码 修改 "pURL=1.jpg" 就没有效果, 我的js代码错在哪里呢


先给100分

flash可以在 http://yyzw.cn/ttt/t.swf 下到
...全文
301 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Go_Rush 2006-04-14
  • 打赏
  • 举报
回复
已经搞定了。

确实是flash出了点小问题,加两行代码就搞定了

深深感谢BILLSJONE(BILL_JONE),FandLR(jack.fandlr),lovingpig(lovingpig)

三位兄台的大力帮助。
BILLSJONE 2006-04-13
  • 打赏
  • 举报
回复
楼主,经我测试是可以,你的js代码有一个错误,SetVariable语法是这样的:
SetVariable("flash的变量名","变量值")

所以你的js要改成这样:
function f_change(){
document.all("oflash").SetVariable("pURL","2.jpg")
}
就改这里,网页里其它代码都不用改,

当然你的swf也有些问题,你在swf里只读一次pURL,所以无法读取点击网页按扭后的第二次的值,
所以你的swf必须不断读取外部变量才可以,所以你的swf应该加上这句应该就可以解决问题了:
var picURL;
onEnterFrame = function () {
picURL = pURL;
};


BILLSJONE 2006-04-13
  • 打赏
  • 举报
回复
lovingpig(lovingpig) 的代码就是各大网站的图片轮循播放代码,以上次反编新浪的,
在这个帖子里,有提供下载
http://community.csdn.net/Expert/topic/4355/4355560.xml?temp=.5642053
FandLR 2006-04-13
  • 打赏
  • 举报
回复
function f_change(){
document.all("oflash").SetVariable("pURL","2.jpg")
}

第1帧加代码

this.onEnterFrame = function():Void{

if(picURL != pURL){
picURL = pURL;
pic.loadMovie(picURL);
}
}
Go_Rush 2006-04-13
  • 打赏
  • 举报
回复
to 楼上

请提供这个例子的 url,我去看看他的效果

lovingpig 2006-04-13
  • 打赏
  • 举报
回复
<script type="text/javascript">
<!--

var focus_width=600
var focus_height=400

var pics='http://image2.sina.com.cn/ty/U1489P6T29D1F63DT20060403060930.jpg|http://image2.sina.com.cn/ty/U1540P6T29D1F3467DT20060403091312.jpg|http://image2.sina.com.cn/ty/U1489P6T29D1F3463DT20060403060930.jpg|http://image2.sina.com.cn/ty/U1489P6T29D1F3465DT20060403060930.jpg'
var links='http://sports.sina.com.cn/nba/|http://sports.sina.com.cn/nba/|http://sports.sina.com.cn/nba/|http://sports.sina.com.cn/nba/'
var texts='fasffasdfasfasf|fafasfasfaf|fasfasfasfaf|9999999999999'

document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="'+ focus_width +'" height="'+ focus_height +'">');
document.write('<param name="allowScriptAccess" value="sameDomain"><param name="movie" value="pixviewer.swf"><param name="quality" value="high"><param name="bgcolor" value="#000000">');
document.write('<param name="menu" value="false"><param name=wmode value="opaque">');
document.write('<param name="FlashVars" value="pics='+pics+'&links='+links+'&texts='+texts+'&borderwidth='+focus_width+'&borderheight='+focus_height+'">');
document.write('<embed src="pixviewer.swf" wmode="opaque" FlashVars="pics='+pics+'&links='+links+'&texts='+texts+'&borderwidth='+focus_width+'&borderheight='+focus_height+'" menu="false" bgcolor="#DADADA" quality="high" width="'+ focus_width +'" height="'+ focus_height +'" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />');
document.write('</object>');
//-->
</script>
这边有个例子你可以看下啊

2,275

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计/Flash/Silverlight 开发 Flash流媒体开发
社区管理员
  • Flash流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧