Второй день сижу и просто думаю ,как лучше сделать...Подскажите пожалуйста, как "лучше" или как более "правильнее", можно сделать то ,что у меня ниже в коде?

Код AS3:
package
{
import flash.display.Sprite ;
import flash.events.Event ;
public class Main extends Sprite
{
private var _a : A ;
public function Main()
{
_a = new A( "a" ) ;
_a.addEventListener( Event.CHANGE ,aChangeHandler ) ;
}
private function aChangeHandler( e : Event ) : void
{
trace( e.type ,_a.str) ;
}
}
}

Код AS3:
package
{
import flash.events.EventDispatcher;
import flash.events.Event;
public class A extends EventDispatcher
{
private var _str : String ;
public function A( str : String )
{
_str = str ;
_str += "b" ;
dispatchEvent( new Event( Event.CHANGE ) ) ;
}
public function get str() : String
{
return _str ;
}
}
}