flex读取本地文件的解决方案

xiaoxiao2022-06-23  34

鉴于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" οnchange="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> 相关资源:敏捷开发V1.0.pptx
转载请注明原文地址: https://www.6miu.com/read-4953063.html

最新回复(0)