Лучшим способом должно быть переопределение метода измерения в Приложении, например:
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 использует событие. Но это другая тема ...