Что ж, вы можете решить эту проблему двумя способами: либо дочерний объект отправляет событие, когда изменяется его размер, либо вы продолжаете прослушивать любые изменения размера с помощью события EnterFrame, последнее ближе к вашему «грязному» решению :) Я обычно выбираю первое решение, но это не значит, что второе решение плохое, это вопрос выбора.
- Существует ли какое-либо событие для экранного объекта, которое отправляется при ЛЮБОМ изменении размера ??
Вы можете создать свой собственный.
package events
{
import flash.events.Event;
public class SizeEvent extends Event
{
public static const CHANGE:String = "Size Changed";
public var params:Object;
public function SizeEvent(type:String, params:Object)
{
super(type);
this.params = params;
}
override public function clone():Event
{
return new SizeEvent(type, params );
}
}
}
Поэтому, когда вы добавляете свои предметы в галерею, вы пишете следующее:
galleryItem.addEventListener(SizeEvent.CHANGE , sizeEventListener );
И когда анимация заканчивается в галерее. Элемент
private function onAnimationComplete():void
{
var params:Object = {x: this.x , y:this.y , width:this.width ,
height:this.height, //any info you need etc... };
dispatchEvent( new SizeEvent( SizeEvent.CHANGE , params ));
}