如何在FLEX中更改火花应用的宽度和高度?

时间:2014-01-29 17:23:08

标签: actionscript-3 flex actionscript

这是我更改应用程序宽度和高度的方法:

 FlexGlobals.topLevelApplication.width = FlexGlobals.topLevelApplication.parameters.width;
 FlexGlobals.topLevelApplication.height = FlexGlobals.topLevelApplication.parameters.height;

我正在尝试更改spark应用程序的宽度和高度:

<s:Application 
    xmlns:fx="http://ns.adobe.com/mxml/2009"    
    xmlns:mx="library://ns.adobe.com/flex/mx"     
    xmlns:s="library://ns.adobe.com/flex/spark"
width="100" height="100">
好像我在代码中指定它,我从html flashvars传递它,但是应用程序的宽度和高度没有改变,有什么问题?

1 个答案:

答案 0 :(得分:0)

希望这会对你有所帮助。

您需要在flex项目(flashbuilder)中的index.template.html下找到history-template folder文件。在swfobject.js脚本标记后面的index.template.html文件中添加以下javascript代码。您可以直接传递javascript本身的高度和宽度。

  

Javascript代码

        function getFlexApp(appName) {
          if (navigator.appName.indexOf ("Microsoft") !=-1) {
            return window[appName];
          } else {
            return document[appName];
            }
        }


        var appName = "${application}";            
        var flexAppHeight = "150px"; //Your customize height
        var flexAppWidth = "200px";  //Your customize width          

        function changeDimension(){           
            var app = getFlexApp(appName);              
            app.style.height = flexAppHeight;
            app.style.width = flexAppWidth;
        }
  

Flex代码

在应用程序preinitilize事件中调用application1_preinitializeHandler(event)。

         protected function application1_preinitializeHandler(event:FlexEvent):void
            {               
                if(ExternalInterface.available) 
                {     
                    ExternalInterface.call("changeDimension"); 
                }           
            }

还要确保您的HTML标记(查看源代码)中提供了您的js功能代码。 Flex也可以调用选项(不需要你的情况),你可以直接在Javascript中设置高度和宽度,甚至可以用HTML做更好的。

只需在changeDimension()函数声明后调用。

changeDimension(); //无需从Flex致电。