получение информации о версии SWF - PullRequest
2 голосов
/ 07 апреля 2011

В параметрах компилятора FlashBuilder («Свойства» -> «Компилятор Flex») в разделе «Параметры Adobe Flash Player» есть параметр «Использовать определенную версию», в котором вы можете указать, с каким Flash Player связываться:

enter image description here

Как мне получить это значение во время выполнения? Обратите внимание, что я говорю не о версии Flash Player, а о версии, с которой был связан swf.

Ответы [ 5 ]

2 голосов
/ 05 июня 2012

Мы столкнулись с той же проблемой в моей компании, и мы нашли следующие сопоставления:

 "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

Источники:

1 голос
/ 07 апреля 2011

Вы делаете это с проектом, который вы можете изменить, или вы пытаетесь найти версию SWF-файла после сборки, если это первый, вы можете изменить index.template.html, чтобы включить флэш-переменные с помощью сборки переменные в качестве параметров затем извлекают их во время выполнения.

<?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>

Если это то, что вы хотите сделать, вы, вероятно, захотите также заполнить переменные в блоке noscript и добавить некоторые разделители для версии, но я просто хотел посмотреть, сработало ли это, как я ожидал, и если это то, что ты идешь в первую очередь.

1 голос
/ 07 апреля 2011

Это может относиться или не относиться к вашему конкретному случаю использования, вам может потребоваться объяснить, что именно вы делаете. В любом случае:

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

1 голос
/ 07 апреля 2011

Вы не можете получить точную целевую версию.Вы можете получить версию SWF-файла, но это не то же самое.Когда вы редактируете целевую версию на этой панели, Flex компилируется с другим playerglobal.swc, но не обязательно меняет версию SWF-файла.

0 голосов
/ 07 апреля 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...