PDA

Просмотр полной версии : Canvas (ResizeEvent.RESIZE)


motor4ik
28.11.2008, 12:00
Вешаю слушателя на событие ResizeEvent.RESIZE у Canvas, почему-то событие срабатывает до того как сам Canvas поменял свои размеры, как получить событие после изменения размеров?




<mx:Canvas id="conteiner" right="10" left="203" top="185" bottom="10">

</mx:Canvas>

private function init():void
{
conteiner.addEventListener(ResizeEvent.RESIZE, onResize);
}


private function onResize(event:ResizeEvent):void
{
trace("conteiner.horizontalScrollPosition = " + conteiner.horizontalScrollPosition);
trace("conteiner.verticalScrollPosition = " + conteiner.verticalScrollPosition);
}

//Выводит в трейс не измененные значения, т.е. те ,что были до ресайза

FlexOkeks
29.11.2008, 09:12
почему-то событие срабатывает до того как сам Canvas поменял свои размеры,как получить событие после изменения размеров? Оно срабатывает после того, как сам Canvas поменял свои размеры: The resize event is not dispatched until after the property changes. (http://livedocs.adobe.com/flex/3/langref/mx/core/UIComponent.html#event:resize) А вот изменение scrollPosition действительно может происходить после того, как сработает событие изменения размеров. Актуальный scrollPosition можно взять из:

updateDisplayList (http://livedocs.adobe.com/flex/3/langref/mx/core/Container.html#updateDisplayList())
scrollChildren (http://livedocs.adobe.com/flex/3/langref/mx/core/Container.html#scrollChildren())
updateComplete (http://livedocs.adobe.com/flex/3/langref/mx/core/UIComponent.html#event:updateComplete)