2008-11-25 69 views

回答

0

可惜没有,我觉得你可以做到这一点的唯一方法是首先摆脱HTML包装的。 HTH。

2

我不知道我完全明白这个问题,你试图让aplication有一个大小不是浏览器的视口大?如果是这样,那么@hasseg评论和@RickDT提到,你可以设置应用程序的horizo​​ntalScrollPolicy和/或verticalScrollPolicy属性为“关闭”?

如果你只是想确保你的应用程序扩展与更改浏览器的形状和大小,然后确保你设置以下(或适应值)在最外层的应用程序标签。

percentWidth="100" 
percentHeight="100" 
+0

应用程序是一个mx.core.Container,因此您可以设置其horizo​​ntalScrollPolicy和verticalScrollPolicy属性。 – hasseg 2008-11-26 16:23:25

3

这是可能的。有关示例,请参阅fi新的Kontain。您可以通过创建新博客文章并在输入字段中添加行来直接看到它。随着输入字段的大小增加,页面变得更高。

你必须通过ExternalInterface的Flash和JavaScript之间进行协调。当你的Flex应用程序需要改变大小时,找到新的大小(可能通过挖掘Flex的布局引擎),并通过ExternalInterface将其提升到Javascript函数。然后JavaScript可以在容器上设置一个新的高度属性。您可能还需要在标签上设置verticalScrollPolicy =“off”,以便Flex在布局引擎运行时不显示滚动条。

4

,最好的办法应该重写应用程序的措施方法,如:

private var _lastMeasuredHeight:int; 

override protected function measure():void 
{ 
    super.measure(); 
    if (measuredHeight != _lastMeasuredHeight) 
    { 
     _lastMeasuredHeight = measuredHeight; 
     if (ExternalInterface.available) 
     { 
      ExternalInterface.call("setFlashHeight", measuredHeight); 
     } 
    } 
} 

此函数假设你有一个JavaScript函数名为setFlashHeight它可以接受的高度(或任何你的名字)的参数。一个例子是:

function setFlashHeight(newHeight){ 
    //assuming flashDiv is the name of the div contains flex app. 
    var flashContentHolderDiv = document.getElementById('flashDiv'); 
    flashContentHolderDiv.style.height = newHeight; 
} 

我使用swfobject来嵌入我的flex应用程序。所以Flash对象驻留在一个div内。如果你没有;可以很容易地改变js函数来设置flash对象的高度。当你实现这个解决方案时,你会注意到,由于flash消耗事件,所以scrollBars不工作。但是,这是另一个问题......

+0

我已经成功地应用了这项技术,但每次我调整flash对象的大小时,它都会变形几毫秒,这在视觉上很不吸引人。请在这里详细看看我的问题(http://stackoverflow.com/questions/6642669/resize-flash-object-from-the-browser-without-flickering) – user802232 2011-07-10 17:35:49

0

没有必要对所有的,只是从火花改变应用程序的mx。这将会被自动显示,因为我觉得火花不支持在所有(我认为这是从Adobe愚蠢的错误)

这样的:而不是

<mx:Application xmlns:fx="http://ns.adobe.com/mxml/2009" > 

</mx:Application> 

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" > 

</s:Application> 

许可申请标签没有高度规格“不使用高度=”100%“

相关问题