`

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>
分享到:
评论

相关推荐

    MyEclipse 8.5+Flex+BlazeDs通信

    下载并安装 Adobe Flex SDK,然后在 MyEclipse 中配置 SDK 路径。 2. **创建 Flex 项目**:在 MyEclipse 中新建一个 Flex 项目,选择适当的模板,例如“Blank Flex Application”。 3. **配置 BlazeDs**:在服务器...

    Flex4.5 与js,ocx相互调用

    压缩包中的 "Flex-js-activex-相互调用自己做的实例" 文件很可能是包含了一个实际应用示例,展示了如何实现 Flex 4.5 与 JavaScript 和 OCX 控件的交互。这个实例可能包括一个 Flex 项目,其中定义了与 JS 交互的...

    flex+sprinf+hibernate简单逻辑实现

    `WebRoot`通常是Web应用的根目录,包含HTML、CSS、JavaScript以及部署的Flex SWF文件。`html-template`可能用于生成Flex应用的HTML容器页面。`.myeclipse`文件则可能与MyEclipse IDE的配置有关,这是一个集成了Flex...

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

    由于Adobe没有提供直接获取用户浏览文件完整路径的接口,因此在Flex与JavaScript交互中获取文件路径时,我们通常会用到以下组件和技术: 1. HTML fileinput控件:这是一个HTML表单控件,允许用户选择本地文件。由于...

    flex—JS相互调用

    需要在HTML文件中引入JavaScript文件,并添加调用Flex的按钮。 ```html &lt;script src="js/hello.js" language="javascript"&gt; &lt;!-- 在中添加调用Flex的按钮 --&gt; ()"&gt;Call App ``` 其中,`hello.js`文件包含...

    flex3的jar文件

    Flex3的jar文件是Adobe Flex 3框架的重要组成部分,这些文件主要用于构建富互联网应用程序(Rich Internet Applications,简称RIA)。Flex是一种基于ActionScript和MXML的开源框架,它允许开发者创建具有交互性和...

    flex IFrame控件的配置使用详细过程

    其中`source`属性指定了要加载的JS页面路径。 ##### 3.2 实现Flex与JS页面的交互 IFrame组件还提供了`callIFrameFunction`方法,用于在Flex中调用JS页面中的函数。例如,如果您想从Flex调用JS页面中的某个函数`...

    Flex与Javascript相互调用例子(附源码)

    标题中的“Flex与JavaScript相互调用例子”是指在Adobe Flex应用程序中如何与JavaScript进行交互的实践示例。Flex是一种基于ActionScript和MXML的开源框架,用于构建富互联网应用程序(RIA)。JavaScript则是一种...

    flex中写js代码

    在Flex开发中,JavaScript(JS)代码的使用主要集中在与ActionScript(AS)的交互上,因为Flex主要是基于Adobe Flex SDK和Flash Player或Adobe AIR来创建富互联网应用程序(RIA)。以下是一些关于在Flex中使用...

    Flex 与javascript交互、C#读写Cookie

    在IT领域,Flex和JavaScript的交互以及C#的Cookie操作是两种重要的技术,它们在构建富互联网应用程序(RIA)和管理用户会话方面发挥着关键作用。以下将详细阐述这两个主题。 首先,让我们关注Flex与JavaScript的...

    一个FLEX的小项目

    在Flex开发中,`.actionScriptProperties`文件是ActionScript的配置文件,用于存储关于源代码编译器设置和库路径等信息。它帮助开发者定制编译过程,比如设置源代码的编码格式或指定库的路径。 `.classpath`文件是...

    flex嵌入安装说明

    - 设置Flex Builder 3.0的安装路径为`D:\Program Files\eclipse\FlexBuilder`,注意该路径应当与Eclipse的安装路径保持一致。 - 设置Eclipse的安装路径为`D:\Program Files\eclipse`。 - 根据需求选择是否安装Flash ...

    flex嵌入html的容器

    在HTML文件中,我们可以创建一个`&lt;object&gt;`标签,设置其`data`属性为Flex编译生成的SWF文件路径,`width`和`height`属性定义Flex应用的尺寸。例如: ```html &lt;!--[if !IE]&gt;--&gt; &lt;!--&lt;![endif]--&gt; 此浏览器...

    flex-bootstrap.jar.zip

    开发者需要将这个JAR文件添加到他们的Flex项目类路径中,以便能够使用Bootstrap的样式表和JavaScript组件。这样做可以让Flex应用具备Bootstrap的特性,如网格系统、导航栏、按钮、表单、模态框等。 使用Flex ...

    flex解析json的swc包(entity-flex-v1-02)及例子

    在Flex项目中,开发者可以通过将这个SWC文件添加到类路径来引入其功能。在Flex Builder或Flash Builder中,这通常意味着将文件拖放到项目的库面板,或者在编译设置中指定库路径。 关于Flex解析JSON的详细过程,一般...

    Flex Air音乐播放器源码

    `.actionScriptProperties` 文件是Flex Builder的项目配置文件,其中包含了关于ActionScript编译器设置的信息,比如编译器警告级别、优化选项以及库路径等。开发者可以通过编辑此文件来定制他们的ActionScript编译...

    flex 代码 代码啊

    首先,`.actionScriptProperties`文件是Eclipse或Flash Builder等IDE的工作空间配置文件,用于存储关于ActionScript项目的特定设置,如编译器选项、库路径和错误警告配置。这些设置可以帮助开发者优化其编码环境,...

    java-flex-webroot配置文件和JAVA包

    在将Java与Flex结合使用时,"webroot"配置文件扮演着至关重要的角色,它定义了应用程序的部署结构和通信方式。 Java的webroot通常指的是Web应用的根目录,这个目录包含了Web应用的所有公共资源,如HTML、CSS、...

Global site tag (gtag.js) - Google Analytics