以flex为中心的网站

时间:2012-06-27 11:39:56

标签: flex flexbuilder

我正在尝试制作websites in flex。我正面临着我的网站页面不居中的问题。我搜索了google但尚未成功。

我正在尝试将<s:Application>放在我的网络浏览器上,而不是从左手开始 我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

根据我的理解: -

1)您正在尝试将swf嵌入到HTML中,如果您希望swf位于HTML的中心,则必须将swf嵌入到HTML端的一个容器中。通过为其提供x,y,高度和宽度,将容器位置放在中心位置。

如果您使用的是HTML,可以通过以下方式进行: - 其中width =“400”height =“300”作为Flex应用程序swf宽度和高度或保持swf width =“100%”height =“100%” 您可以使用swf名称替换AreaChart.swf。

我认为这可以解决您的问题。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
    <head>
        <title>Tittle Here</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

        <style type="text/css" media="screen">
            html, body { height: 100%; margin:0; padding:0; text-align: center; }
            div#centered { border:0; height: 50%; width: 50%; position: absolute; left: 25%; top: 25%; color: black; }
        </style>        
        <script type="text/javascript" src="swfobject.js"></script>
        <script type="text/javascript">
        swfobject.registerObject("myId", "8.0.0", "expressInstall.swf");
        </script>
    </head>
    <body>
        <div id="centered">    
            <object id="myId" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="400" height="300">
            <param name="movie" value="AreaChart.swf" />
            <param name="scaleMode" value="showAll" />
            <param name-"quality" value="best" />
                <!--[if !IE]>-->
                <object type="application/x-shockwave-flash" data="AreaChart.swf" width="400" height="300">
                <!--<![endif]-->
                <div id="altContent">
                    <h1>You need to upgrade your Flash player.</h1>
                    <p>
                    <a href="http://www.adobe.com/go/getflashplayer">
                    <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
                    </a>
                    </p>
                </div>
                <!--[if !IE]>-->
                </object>
                <!--<![endif]-->
            </object>
        </div>
    </body>
</html>

否则

2)如果您试图将Flex内容集中在Flex应用程序中,而不是创建一个容器,那么您必须移植所有逻辑,包括可视化组件等。

前: -

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:local="*"
               width="800" height="600" >
    <fx:Script>
        <![CDATA[
            import mx.core.FlexGlobals;

            private function creationComp():void
            {
                mainContainer.x = FlexGlobals.topLevelApplication.width/2 - mainContainer.width/2;
                mainContainer.y = FlexGlobals.topLevelApplication.height/2 - mainContainer.height/2;
            }
        ]]>
    </fx:Script>
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>

    <local:MainContainer id="mainContainer" width="50%" height="50%" creationComplete="creationComp()"/>

</s:Application>

MainContainer.mxml将包含所有可视组件/元素。

这可能会对你有帮助。

可能有更好的解决方案。