AIR ile ilgilenmeye tüm hızıyla devam :)...
Efenim geçen yazımda flash ile AIR class'larına erişemediğimi yazmıştım. Bunu neden yaptı bilmiyorum ama Adobe bilerek yapmış :) Oysa harika olmaz mıydı flash içinden de yazabilseydik kodları :) Neyse flash içinden yazamıyoruz ama flash'a ek olarak bir class oluşturduğumuzda çillop gibi yazılıyor kodlar heryerine de ulaşabiliyorsunuz AIR'in :)
Hemen belirtlek lazım ki AIR içindeki class'lara air.net... gibi ulaştığınız gibi flash'a ait bir kaç class daha eklenmiş durumda. (http://livedocs.adobe.com/air/1/devappsflash/help.html?content=AIR_API_List_Appendix_1.html) bu class'lar ile veritabanına bilem bağlanabiliyorsunuz ki uygulamaların olmassa olmazlarındandır bilirsiniz :) Mesela flash.desktop.NativeApplication class'ı çok güzel bir class :)
Ben class'ların hazırlanması için FlashDevelop programını kullanıyorum ve çok da memnunum :) Beta6 versionunda AIR için otomatik tamamlama fonksiyonları falan hepsi eklenmiş durumda hiç bir sıkıntı yok. Bu işler için Flex kullanırım kralını tanımam diyenlere de lafım yok lakin Flex hem fazla ağır kaçıyor hem de bir türlü düzgün kıramadım mereti :))) Serial sorup duruyor keranacı :)
Neyse konuya geçelim efenim. Buyrun size örnek bir dosya gönderiyorum sistemde çıkma işlemini falan yapan. Bu cadı.com.tr için yaptığım request tabanlı sistemleri de hazırlayabiliriz artık Flash içinde. Hatta javscript ile kullandığım haliyle kullanılıyor o da güzel bir olay :) Ahanda örnek dosya bakın gülün eğlenin :)
package ebolax
{
import flash.desktop.NativeApplication;
import flash.display.*;
import flash.events.*;
import flash.text.TextField;
public class Main extends Sprite
{
var _root:MovieClip;
var debug_txt:TextField;
var close_btn:SimpleButton;
public function Main(root:MovieClip)
{
_root = root;
debug_txt = TextField(_root.getChildByName("debug_txt"));
debug_txt.text = "deneme";
close_btn = SimpleButton(_root.getChildByName("close_btn"));
close_btn.addEventListener(MouseEvent.CLICK, doExit);
var mc:MovieClip = new MovieClip();
mc.graphics.beginFill(0xFF, 1);
mc.graphics.drawCircle(40, 40, 20);
mc.useHandCursor = true;
mc.name = "mc";
mc.addEventListener(MouseEvent.CLICK, doJob);
_root.addChild(mc);
}
public function doJob(event:MouseEvent)
{
debug_txt.text = _root.getChildByName("mc").alpha.toString();
MovieClip(_root.getChildByName("mc")).alpha = 0.5;
}
public function doExit(event:MouseEvent)
{
NativeApplication.nativeApplication.exit();
}
}
}