`

flex+js或得文件路径

阅读更多

鉴于adobe并没有提供FileReference对浏览的文件的完整路径的接口。
只能采用JS和fileinput控件来获取本地路径了。
mxml代码
<!--ReadLocalFile.mxml-->
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
<mx:Script>
     <![CDATA[
      
       private

function init():void
       {
           ExternalInterface.addCallback("OnFileChange" ,frSelectHandler);//注册JS回调
           btnBrowser.addEventListener(MouseEvent.CLICK,mouseClickHandler);
       }
      
       private function mouseClickHandler(event:MouseEvent):void
       {
           ExternalInterface.call("Browser" );//调用JS中Browser函数
       }
      
       private function frSelectHandler(path:String):void
       {
           imgTest.source = path;
       }
     ]]>
</mx:Script>
     <mx:Button id="btnBrowser" x="10" y="10" label="Button" />
     <mx:Image id="imgTest"   x="10" y="50"/>
</mx:Application>

html端代码
<!-- ReadLocalFile.html -->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="history/history.css" />
<title></title>
<script src="AC_OETags.js" language="javascript"></script>
<script src="history/history.js" language="javascript"></script>
<style>
body { margin: 0px; overflow:hidden }
</style>
<script language="JavaScript" type="text/javascript">
var requiredMajorVersion = 9;
var requiredMinorVersion = 0;
var requiredRevision = 28;
//关键代码
function Browser()
{
document.getElementById("fileInput").click();
}
function OnFileChange()
{
thisMovie("ReadLocalFile").OnFileChange(document.getElementById("fileInput").value);
}
function thisMovie(movieName) {
         if (navigator.appName.indexOf("Microsoft") != -1) {
             return window[movieName];
         } else {
             return document[movieName];
         }
     }

</script>
</head>
<body scroll="no">
<input type="file" id="fileInput" style="display:none" onchange="OnFileChange()" /><!--fileInput控件-->
<script language="JavaScript" type="text/javascript">
var hasProductInstall = DetectFlashVer(6, 0, 65);
var hasRequestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
if ( hasProductInstall && !hasRequestedVersion ) {
var MMPlayerType = (isIE == true) ? "ActiveX" : "PlugIn";
var MMredirectURL = window.location;
     document.title = document.title.slice(0, 47) + " - Flash Player Installation";
     var MMdoctitle = document.title;
AC_FL_RunContent(
   "src", "playerProductInstall",
   "FlashVars", "MMredirectURL="+MMredirectURL+'&MMplayerType='+MMPlayerType+'&MMdoctitle='+MMdoctitle+"",
   "width", "100%",
   "height", "100%",
   "align", "middle",
   "id", "ReadLocalFile",
   "quality", "high",
   "bgcolor", "#869ca7",
   "name", "ReadLocalFile",
   "allowScriptAccess","sameDomain",
   "type", "application/x-shockwave-flash",
   "pluginspage", "http://www.adobe.com/go/getflashplayer "
);
} else if (hasRequestedVersion) {
AC_FL_RunContent(
   "src", "ReadLocalFile",
   "width", "100%",
   "height", "100%",
   "align", "middle",
   "id", "ReadLocalFile",
   "quality", "high",
   "bgcolor", "#869ca7",
   "name", "ReadLocalFile",
   "allowScriptAccess","sameDomain",
   "type", "application/x-shockwave-flash",
   "pluginspage", "http://www.adobe.com/go/getflashplayer "
);
   } else {   // flash is too old or we can't detect the plugin
     var alternateContent = 'Alternate HTML content should be placed here. '
   + 'This content requires the Adobe Flash Player. '
     + '<a href=http://www.adobe.com/go/getflash/>Get Flash</a>';
     document.write(alternateContent);   // insert non-flash content
   }
</script>
<noscript>
   <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
   id="ReadLocalFile" width="100%" height="100%"
   codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab ">
   <param name="movie" value="ReadLocalFile.swf" />
   <param name="quality" value="high" />
   <param name="bgcolor" value="#869ca7" />
   <param name="allowScriptAccess" value="sameDomain" />
   <embed src="ReadLocalFile.swf" quality="high" bgcolor="#869ca7"
     width="100%" height="100%" name="ReadLocalFile" align="middle"
     play="true"
     loop="false"
     quality="high"
     allowScriptAccess="sameDomain"
     type="application/x-shockwave-flash"
     pluginspage="http://www.adobe.com/go/getflashplayer ">
   </embed>
</object>
</noscript>
</body>
</html>
分享到:
评论

相关推荐

    Flex结合JavaScript读取本地路径的方法

    鉴于adobe并没有提供FileReference对浏览的文件的完整路径的接口。只能采用JS和fileinput控件来获取本地路径了。

    Flex企业应用开发实战源代码

    4.3 Flex客户端工程路径规划 137 4.4 小结 138 第5章 BlazeDS框架详解 139 5.1 BlazeDS介绍 139 5.1.1 什么是BlazeDS 139 5.1.2 使用BlazeDS的原因 140 5.1.3 BlazeDS功能特色 140 5.2 BlazeDS体系结构 141 ...

    FLEX房屋出租网程序

    你可以参考searchfang/index.html 或searchfang.html 里的js代码,复制到那个页面,修改路径就行了。要确保这个页面的目录下面也有一个config.xml文件。 2.此程序会不断更新吗? 会的。以后还有上传图片和标注地图的...

    flash多文件批量上传(第一版)

    用flex3开发的多文件批量上传工具,实现文件批量上传,并带进度条;...通过JS设置可上传文件的扩展名、允许最大上传长度与接收文件的后台文件路径,通过修改上传页面的js代码设置,即可适用,适合所有上传应用的需求

    grunt-swf:通过 Apache Flex SDK 将 .as 文件编译为 .swf(免费但必须单独安装)

    咕噜声-swf 使用 Apache Flex 自动将 .as 文件编译为 .swf。 注意:您必须单独安装 Apache Flex SDK,然后使用 SDK 的路径配置此插件。入门这个插件需要 Grunt。 如果您以前没有使用过 ,请务必查看指南,因为它解释...

    vue-layout-diy:基于vue和flex的自定义布局

    vue-layout-diy 基于vue和flex的自定义布局,。 S前缀为Sunflower简写,我们团队的命名空间。 项目步骤 ...由于demo并非部署在Web服务器根目录下,所以分离的异步js文件找不到。 需要修改config/inde

    mxmlc:用于构建 ActionScript 的 Node.js 模块

    您可以在下载 Flex SDK安装 mxmlc 建议将 mxmlc 安装为全局模块,以便您可以从计算机上的任何路径调用它。 $ [sudo] npm install mxmlc -g用法指定输入 Actionscript 文件和可选的输出目录。 Usage: index.js ...

    微信小程序-第一个微信小程序demo

    3、require()引入js时,不能使用绝对路径,只能使用相对路径,import引入文件时,相对绝对都可以; 4、wxml最外层是有个page标签的,编辑看不到,调试的时候可以看到,必要的时候可以对这个标签设置样式; 小程序...

    guepard:将Flash转换为html5转换器,将as3转换为javascript转换器

    解析资源(从SWF或FLA文件) 创作地图集 将资源从SWF导出到XML以用于动画和结构,将JPG / PNG导出用于图形和地图集 解析AS3代码 分析代码并修复未知类型 导出JS代码 生成HTML页面 用法(Windows,Mac,Linux) ...

    WX_mini-programs:微信小程序

    新建之后会自动将路径存入到 全局的json文件中,如果有的模板不需要json就删除路径 主文件夹 app.js app.json app.wxss project.config.json ###css display -- flex 方向是 纵向 默认是横向 vertical-align -- ...

    Vue项目中最新用到的一些实用小技巧

    在开发过程中,我们经常需要引入各种文件,如图片、CSS、JS等,为了避免写很长的相对路径(../),我们可以为不同的目录配置一个别名。 找到 webpack.base.config.js 中的 resolve 配置项,在其 alias 中增加别名,...

    shop-anywhere:使用ReactJS和Redux的电子商务网站

    React JS和Redux JavaScript,HTML和CSS / SCSS 部署在Firebase上 此项目中使用的概念和要注意的要点:- 弹跳搜索框 使用react-router-dom私有路由 材质用户界面 ESLint与更漂亮和沙哑 绝对路径导入 可在其他...

    atfcapi-web-2018524-user

    react-bootstrap, reactjs, react-router, redux, fetch, webpack, flex推荐的Chrome插件部署攻略前提:node &gt; 7.0.0npm i 安装依赖配置代理(两种方式)使用http-proxy-middleware访问/dev/server.js 文件中的监听...

    asp.net知识库

    帮助解决网页和JS文件中的中文编码问题的小工具 慎用const关键字 装箱,拆箱以及反射 动态调用对象的属性和方法——性能和灵活性兼备的方法 消除由try/catch语句带来的warning 微软的应试题完整版(附答案) 一个...

    ActionScript开发技术大全

    26.1.2ActionScript与JavaScript交互 566 26.1.3ActionScript与桌面程序交互 567 26.2网页脚本交互示例 568 26.3桌面应用交互示例 571 26.4小结 573 第27章ActionScript打印控制 574 27.1使用打印作业对象 574 ...

Global site tag (gtag.js) - Google Analytics