getting swf version info

后端 未结 5 1699
庸人自扰
庸人自扰 2021-01-22 19:25

In FlashBuilder\'s compiler options (Properties->Flex Compiler), under \"Adobe Flash Player options\" there is an option for \"Use a specific version\", where you can tell it wh

相关标签:
5条回答
  • 2021-01-22 20:08

    You can't get that exact target version. You can get the SWF file version, but that is not the same. When you edit the target version in that panel, Flex compiles against a different playerglobal.swc, but doesn't necessarily change the SWF file version.

    0 讨论(0)
  • 2021-01-22 20:10

    This may or may not apply to your specific use case, you might need to explain what exactly you're doing. At any rate:

    http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/LoaderInfo.html#swfVersion

    0 讨论(0)
  • 2021-01-22 20:14

    We were facing the same problem at my company, and we've found the following mappings:

     "SWF Version" | "Flash Player Version"
    ========================================
           9       |          9
          10       |      10.0, 10.1
          11       |         10.2
          12       |         10.3
          13       |         11.0
          14       |         11.1
          15       |         11.2
          16       |         11.3
          17       |         11.4
          18       |         11.5
          19       |         11.6
          20       |         11.7
          21       |         11.8
          22       |         11.9
          23       |         12.0
          24       |         13.0
          25       |         14.0
    

    Sources:

    • blogs.adobe.com
    • sleepydesign.blogspot.com
    0 讨论(0)
  • 2021-01-22 20:15

    Are you doing this with a project that you can modify or are you trying to find the version of a swf file after the build, if it's the former you can modify the index.template.html to include flash vars using the build variables as parameters then retrieve these at runtime.

    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
                    layout="absolute"
                    creationComplete="application1_creationCompleteHandler(event)">
        <mx:Script>
            <![CDATA[
                import mx.controls.Alert;
                import mx.events.FlexEvent;
    
                protected function application1_creationCompleteHandler(event:FlexEvent):void
                {
                    // TODO Auto-generated method stub
                    Alert.show(Application.application.parameters.fpVersion);
                }
            ]]>
        </mx:Script>
    </mx:Application>
    

    my index.template.html

    <html lang="en">
    
    <!-- 
    Smart developers always View Source. 
    
    This application was built using Adobe Flex, an open source framework
    for building rich Internet applications that get delivered via the
    Flash Player or to desktops via Adobe AIR. 
    
    Learn more about Flex at http://flex.org 
    // -->
    
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <!--  BEGIN Browser History required section -->
    <link rel="stylesheet" type="text/css" href="history/history.css" />
    <!--  END Browser History required section -->
    
    <title>${title}</title>
    <script src="AC_OETags.js" language="javascript"></script>
    
    <!--  BEGIN Browser History required section -->
    <script src="history/history.js" language="javascript"></script>
    <!--  END Browser History required section -->
    
    <style>
    body { margin: 0px; overflow:hidden }
    </style>
    <script language="JavaScript" type="text/javascript">
    <!--
    // -----------------------------------------------------------------------------
    // Globals
    // Major version of Flash required
    var requiredMajorVersion = ${version_major};
    // Minor version of Flash required
    var requiredMinorVersion = ${version_minor};
    // Minor version of Flash required
    var requiredRevision = ${version_revision};
    // -----------------------------------------------------------------------------
    // -->
    </script>
    </head>
    
    <body scroll="no">
    <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);
    
    if ( hasProductInstall && !hasRequestedVersion ) {
        // 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+"&fpVersion="+requiredMajorVersion+requiredMinorVersion+requiredRevision+"",
            "width", "${width}",
            "height", "${height}",
            "align", "middle",
            "id", "${application}",
            "quality", "high",
            "bgcolor", "${bgcolor}",
            "name", "${application}",
            "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", "${swf}",
                "width", "${width}",
                "height", "${height}",
                "align", "middle",
                "id", "${application}",
                "quality", "high",
                "bgcolor", "${bgcolor}",
                "name", "${application}",
                "allowScriptAccess","sameDomain",
                "type", "application/x-shockwave-flash",
                "flashVars", "&fpVersion="+requiredMajorVersion+requiredMinorVersion+requiredRevision,
                "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="${application}" width="${width}" height="${height}"
                codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
                <param name="movie" value="${swf}.swf" />
                <param name="quality" value="high" />
                <param name="bgcolor" value="${bgcolor}" />
                <param name="allowScriptAccess" value="sameDomain" />
                <embed src="${swf}.swf" quality="high" bgcolor="${bgcolor}"
                    width="${width}" height="${height}" name="${application}" 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>
    

    If this is what you want to do you'll probably want to fill in the variables in the noscript block as well and add some delimiters for the version but I just wanted to see if this worked as I expected and if it's what you're going for in the first place.

    0 讨论(0)
  • 2021-01-22 20:16

    This was answered in December here: How can I determine what flash player version a swf was published for?

    0 讨论(0)
提交回复
热议问题