Adobe flex and Javascript together to get local file path

Adobe flex and Javascript together to get local file path

Postby tomrff » Sat Mar 19, 2011 9:30 am

Adobe flex and Javascript together to get local file path

Flex code

Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="Init()">
    <mx:TextInput x="114" y="139" id="txtFileName"/>
    <mx:Button x="310" y="139" label="Browse" id="btnBrowse" click="onBrowseClick();"/>
   
    <mx:Script>
        <![CDATA[
            import flash.external.ExternalInterface;
           
            private function Init():void
            {
                ExternalInterface.addCallback("setValue",setTextValue);
            }
           
            private function onBrowseClick():void
            {
                ExternalInterface.call("browse");               
            }
           
            private function setTextValue(val:String):void
            {
                txtFileName.text=val;
            }
        ]]>
    </mx:Script>
</mx:Application>



</script>


Compile the above code, add the following into generated HTML file.
Code: Select all
<input type="File" id="myFile" onchange="giveValueToFlash(myFile.value)" style="visibility:hidden"/>
<script language="javascript">
function browse(){
    myFile.click();
}

function giveValueToFlash(val){
    GetFilePath.setValue(val);
}


The final HTML file looks like this:
Code: Select all
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script src="AC_OETags.js" language="javascript"></script>
<style>
body { margin: 0px; overflow:hidden }
</style>
<script language="JavaScript" type="text/javascript">
<!--
// -----------------------------------------------------------------------------
// Globals
// Major version of Flash required
var requiredMajorVersion = 9;
// Minor version of Flash required
var requiredMinorVersion = 0;
// Minor version of Flash required
var requiredRevision = 0;
// -----------------------------------------------------------------------------
// -->
</script>
</head>

<body scroll="no">
<script language="JavaScript" type="text/javascript" src="history.js"></script>
<script language="JavaScript" type="text/javascript">
<!--
// Version check for the Flash Player that has the ability to start Player Product Install (6.0r65)
var hasProductInstall = DetectFlashVer(6, 0, 65);

// Version check based upon the values defined in globals
var hasRequestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);


// Check to see if a player with Flash Product Install is available and the version does not meet the requirements for playback
if ( hasProductInstall && !hasRequestedVersion ) {
    // MMdoctitle is the stored document.title value used by the installation process to close the window that started the process
    // This is necessary in order to close browser windows that are still utilizing the older version of the player after installation has completed
    // DO NOT MODIFY THE FOLLOWING FOUR LINES
    // Location visited after installation is complete if installation is required
    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", "GetFilePath",
        "quality", "high",
        "bgcolor", "#869ca7",
        "name", "GetFilePath",
        "allowScriptAccess","sameDomain",
        "type", "application/x-shockwave-flash",
        "pluginspage", "http://www.adobe.com/go/getflashplayer"
    );
} else if (hasRequestedVersion) {
    // if we've detected an acceptable version
    // embed the Flash Content SWF when all tests are passed
    AC_FL_RunContent(
            "src", "GetFilePath",
            "width", "100%",
            "height", "100%",
            "align", "middle",
            "id", "GetFilePath",
            "quality", "high",
            "bgcolor", "#869ca7",
            "name", "GetFilePath",
            "flashvars",'historyUrl=history.htm%3F&lconid=' + lc_id + '',
            "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="GetFilePath" width="100%" height="100%"
            codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
            <param name="movie" value="GetFilePath.swf" />
            <param name="quality" value="high" />
            <param name="bgcolor" value="#869ca7" />
            <param name="allowScriptAccess" value="sameDomain" />
            <embed src="GetFilePath.swf" quality="high" bgcolor="#869ca7"
                width="100%" height="100%" name="GetFilePath" 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>
<iframe name="_history" src="history.htm" frameborder="0" scrolling="no" width="22" height="0"></iframe>
<input type="File" id="myFile" onchange="giveValueToFlash(myFile.value)" style="visibility:hidden"/>
<script language="javascript">
function browse(){
    myFile.click();
}

function giveValueToFlash(val){
    GetFilePath.setValue(val);
}
</script>
</body>
</html>
tomrff
 
Posts: 33
Joined: Sat Jan 08, 2011 10:12 pm

Return to Adobe FLEX Flash

Who is online

Users browsing this forum: No registered users and 1 guest

cron