We have new access modifiers, protected (private to the classes and subclasses) and internal (Private to other classes in the package).We can’t use them in the package, they must be in a class .

If you create a new Number object with new Number, it isn’t equal to 0 by default. You should give the 0 value by yourself.

trace function is inside the flash.util package and it must be imported inside the package that you have created.To see the trace’s output, we should choose "Debug As.." by right clicking the Flex 2 builder’s class editing area.

We can define functions or variables as a member of a package.. and they can be import like trace .

If we want to know what is the type of our object, we now use flash.util.describeType(); not typeof();.

Our old friend drawing API objects are in the flash.display.Graphics and we have now drawRect() and drawCircle() for great dynamic drawing performances.

And so, where is our MovieClip object? Like you thought before, it’s inside a package : flash.display.MovieClip;. But we have some new friends similar to the MovieClip. Sprite (flash.display.Sprite) and Shape (flash.display.Shape). The difference of the Sprite that it has no timeline like MovieClips; if you don’t need to make a timeline based MovieClip, you should use Sprite for optimize our swf.

If we were using AS 1 or 2, we should set the depth of the dynamically created MovieClips, but in AS3 we should use addChild(instanceName); to add them to the display list.Flash now set the depth of objects automatically.

Mouse and keyboard interactions are changed too.We use flash .events and its necessary member according to your event type.

And finally some new methods that i have found interesting :

MovieClip.currentLabel; : Gets the label of the current frame .

Loader.loadBytes(); This is the most powerful new feature in AS3. We can now get the bytes of a file and provides us to read the file type, convert them from one to other and etc.

Loader.close;: In AS 1 and AS 2 when we start a load of an external file, this action doesn’t ends until the file has loaded.. Now we can stop the progress at anytime.

replayInteraction ( ); : Replays the specified interaction.

computeSpectrum(); Takes a snapshot of the current sound wave.

Artık herhangibir class’a ulaşmak için package’ları kulanıyoruz.Eğer bir package içerisinde olmayan bir calss yaratırsanız, bu class sadece o andaki class’tan ulaşılabilir.

Yeni erişim düzenleyicileri , protected (class ve subclass’lar için özel) ve internal (package içindeki diğer sınıflara özel) olarak karşımıza çıkıyor, ancak kullanırken package’ın içerisinde değil, class içerisinde olduğuna dikkat etmeliyiz.

Eğer yeni bir Number nesnesini new Number ile oluşturursanız, artık başlangıçta "0"a eşit olmuyor. Yani 0 değerini kendimiz kullanmadan önce vermeliyiz.

trace fonksiyonu artık flash.util içerisinde ve kullanılmadan önce mutlaka oluşturmuş olduğunuz package içerisine import edilmiş olmalı..Trace in çıktısını görmek içinse, Flex 2 Builder’ımızda sağ tuşu tıklayarak "Debug As.." seçeneğini seçmemiz gerekiyor.

Ayrıca fonksiyon ya da değişkenleri de artık bir package üyesi olarak tanımlayabiliyor ve herhangi bir class veya package ile ulaşabiliyoruz.

Bir nesnenin cinsini öğrenmek için flash.util.describeType() kullanıyoruz; typeof() değil.

Eski dostlarımız çizim nesneleri ( drawing API objects) de artık flash.display.Graphics içerisinde ve drawRect(), drawCircle() gibi metodlarla harika bir çizim performansı alabiliyoruz.

Peki MovieClip nesnemiz nerede ? Tahmin edeceğiniz gibi, tabiki bir package içerisinde ve o da flash.display.MovieClip;. Ancak artık MovieClip benzeri yeni arkadaşlarımız. Sprite (flash.display.Sprite) ve Shape (flash.display.Shape) var .Sprite’ın farkı ise MovieClip gibi timeline’ın olmaması; eğer timeline’a ihitiyacınız olmayacaksa Sprite kullanarak hem swf’nizi optimize etmiş oluyorsunuz hem de performans kazanıyorsunuz.

Eğer AS 1 veya 2 kullanıyor olsaydık, dinamik olarak oluşturulmuş MovieClip’lere derinlik (depth) belirlemeliydik, fakat AS3 bunu addChild(instanceName); metoduyla görünüm listesine ekliyor, derinlik otomatik olarak ayarlanıyor.

Herşey gibi fare ve klavye etkileşimleri de değişmiş durumda .flash .events ‘i import ediyoruz ve gereken üyesini de ihtiyacımıza göre kullanıyoruz.

Son olarak da benim ilginç buldupum birkaç yeni özellik:

MovieClip.currentLabel; :
Sonunda flash’daki bir frame ismine ulaşabiliyoruz.

Loader.loadBytes(); AS3′ün yeni ve en güçlü özelliklerinden birisidir ve sayesinde herhangi bir dosyanın belirli bir byte’ına ulaşabiliyoruz ki bu bize dosyanın cinsini, birinden diğerine değiştirme olanağı sunmakla beraber, flash’ın görüntü çıktısını sunucuya kolayca ulaştırması gibi özellikler de kazandırıyor.

Loader.close;: AS 1 ve AS 2′de bir dosya yükleme komutu verdiğimizde,bu ancak dosya yüklendiğinde duruyordu ama artik bu süreci istediğimiz bir anda durdurabiliyoruz.

replayInteraction ( ); : Belirtilen etkileşimi tekrarlar.

computeSpectrum(); O anda belirlenen sesin spectrumuna ulaşmamızı sağlar.