<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
layout="absolute"
width="1000" height="650"
xmlns:flexpaper="com.devaldi.controls.flexpaper.*">

<flexpaper:FlexPaperViewer width="1000" height="650" 
   Scale="1" SwfFile="Paper3.swf" />

</mx:Application>上面这段代码是myeclipse中用flash builder插件开发时的一段flash的源代码,用了flexPaper,以在线查看pdf。
SwfFile的值是另外一个.swf文件,也就是想要查看的那个pdf转换过来的swf文件。
现在想要SwfFile能动态赋值,就是说要把其他页面传过来的信息赋给SwfFile,从而每次显示这个flash的时候有不同的内容,应该怎么做?有重谢~~~

解决方案 »

  1.   

    动态修改?偶不会,只想到使用两个配置。--
    应该有类似于struts2 的#{XX}传参方式才对。
      

  2.   

    写个读取文件的类。读取出来你想要的的文件。把文件地址写在一个properties文件中动态改变就可以啦。读取到你想要的数据。赋值就行啦
      

  3.   

    能不能给个具体的代码,我对mxml不是很了解额。。
      

  4.   

    你为<flexpaper:FlexPaperViewer width="1000" height="650" Scale="1" SwfFile="Paper3.swf" />设一个id属性,比如<flexpaper:FlexPaperViewer id="flexpp" width="1000" height="650" Scale="1" SwfFile="Paper3.swf" />,进入这个页面的时候接收从另一个页面传过来的参数,即你要打开的swf文件的名称,然后flexpp.SwfFile=参数值  就行了
      

  5.   

    我觉得可以用AJAX技术慢慢来转哦
      

  6.   

    谢谢~~
    请问mxml中如何接收另一个页面传过来的参数?
    以及另一个页面如何给这个mxml传递参数呢?
      

  7.   

    你是怎样从一个mxml进入另一mxml的咯?是用navigateToURL(new URLRequest("jieguo.swf"),"_self");吗?如果是的话你直接在navigateToURL(new URLRequest("jieguo.swf?sessionId=1"),"_self")就行了。。然后在另一个页面用Application.application.parameters.sessionId就行了,具体参考http://hi.baidu.com/onino_info/blog/item/c293c4549b996e53d00906f0.html
      

  8.   

    哦不是,是用jsp或servlet直接跳转到这个flash页面~
      

  9.   

    那就得用javascript了,你在那个jsp页面里面用
    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
    id="login" width="0" height="0"
    codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
    <param name="movie" value="<%=path%>/web_admin/conference/conferenceSystem/login.swf" />
    <param name="quality" value="high" />
    <param name="bgcolor" value="#869ca7" />
    <param name="allowScriptAccess" value="sameDomain" />
    <embed src="<%=path%>/web_admin/conference/conferenceSystem/login.swf" quality="high" bgcolor="#869ca7"
    width="0" height="0" name="login" align="middle"
    play="true"
    loop="false"
    quality="high"
    allowScriptAccess="sameDomain"
    type="application/x-shockwave-flash"
    pluginspage="http://www.adobe.com/go/getflashplayer">
    </embed>
    </object>
    引入你的flash,然后在jsp页面里面调用document.getElementById("login").addTo100(loginName,roleid,cnfId);
    其中login是<object>的id,addTo100是flash中的一个方法,loginName,roleid,cnfId是三个你要传到flash中的参数
    然后在flash中加入以下代码:
    ExternalInterface.addCallback("addTo100",test););//这里需要特别说明:第一个参数是js中需要调用的方法,第二个参数是flex被调用的方法,也就是说addTo100就如同as方法被注册后的javascript方法.public function test(loginName:String,roleid:int,cnfId:String):void{}
      

  10.   

    呵呵不好意思,上面写错了。。上面的方法是javascript调用flex中的方法,你要的是从jsp页面跳转到flash页面,就直接用window.location = "";就行了参数依然是在地址里面直接加,比如window.location = "<%=path%>/vote/toupiao.swf?id=1";然后你在flash页面中这样获取参数的值Application.application.parameters.id
      

  11.   

    使用shareObject   flex中的cookie  ,
    补充一句,楼主的结贴率太低了,  注意RP