从URL里获取资料路径,显示swf文档
从URL里获取文件路径,显示swf文档
想从一个文件列表里,点击一个文件后跳到flashPaper里去在线查看时,可以用下面的方式来实现,这里主要是从请求
的URL里获取请求路径,再使用flashpaper来进行查看:
1 建立flex project (web) FlexReader
FlexReader.mxml文件内容如下:
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="100%" height="100%" xmlns:flexpaper="com.devaldi.controls.flexpaper.*"> <mx:Script> <![CDATA[ //下面是从用户的请求的URL里获取待播放的swf文件路径 private var params:Object; private function getParams():Object { params = {}; var query:String = ExternalInterface.call("window.location.search.substring", 1); // Alert.show(ExternalInterface.call("window.location.href.toString",1)); // Alert.show(query); if(query) { var pairs:Array = query.split("&"); for(var i:uint=0; i < pairs.length; i++) { var pos:int = pairs[i].indexOf("="); //Alert.show(String(pos)); if(pos != -1) { var argname:String = pairs[i].substring(0, pos); var value:String = pairs[i].substring(pos+1); params[argname] = value; } } } return params; } var args:Object = getParams(); private var swfURL:String = "a.swf";//args.path ]]> </mx:Script> <!--Scale为浏览文档的放大比率--> <flexpaper:FlexPaperViewer width="100%" height="100%" Scale="1.6" SwfFile="{swfURL}" /> </mx:Application>
这里表示从请求的URL里获取path参数值作为swf文件的资源路径,因为这里设置了是读path参数,所以想正确浏览到文档,你的请求URL里要含path参数并赋上swf资源文件的路径。
2 将编译生成的FlexReader.html和FlexReader.swf和AC_OETags.js文件拷入到myeclipse的web projcet的WebRoot目录下
3 index.jsp文件内容简单设置如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <html> <head> </head> <body> <a href="FlexReader.html?path=a.swf" target="_blank">FlexReader.html</a> </body> </html>
这里在请求FlexReader.html里加入了参数path=a.swf,这个指明待浏览的swf文档在WebRoot目录下,你以设置能访问到你资源的地方,即可完成文件的在线浏览。
附件便是这个例子的代码,我这里是用flush builder3来做生成flex文件的。