Actionscript ile Facebook’dan alınan Fotoğrafı Scale Etmek

Başlık biraz uzun oldu fakat mantık çok kısa aslında. Boyutlandırmak istediğimiz profil resimini ilk önce çağırıyoruz. Çağırdıktan sonra BitmapData ve Bitmap’e bastıktan sonra bastığımız Bitmap dosyasını herhangi bir movieclibe ekliyoruz. Daha sonra scale işlemini kolaylıkla yapabiliyoruz.Burada dikkat edilmesi gereken bir nokta var buda ekledikten hemen önce scale işlemini gerçekleştiriyoruz. Ardından yaptığımızda resmimiz scale olmuyor.

 var urlReq:URLRequest = new URLRequest("facebook.com/profilresimyolu.jpg");
var loader:Loader = new Loader();
loader.load(urlReq);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete);

function onComplete(event:Event):void
{
var bmd:BitmapData = new BitmapData(event.target.content.width,event.target.content.height);
bmd.draw(event.target.content);
var bm:Bitmap = new Bitmap(bmd);

bm.width = 120;
bm.height = 120;
bm.x = 200;
mcImage.addChild(bm);

};

Javascript ile Attributelere Ulaşmak

Dinamik ya da dökümanızda eklediğimiz html elemanlarının attributelerine ulaşmak isteyebiliriz bazen bu gibi durumlarda; attirubte değerini alıp değiştirebiliriz.

Html sayfamızda img etiketiyle bir resim gömdüğümüzü varsayarak devam ediyorum sadece javascript kodları yazıyorum

 var imgAttr = document.getElementById('resimID').attributes.getNamedItem('class').value;

Burada kodları kısaca açıklamak gerekirse; İlk olarak resmimizin ID vererek ulaşıyoruz. Daha sonrasında ise ID ile ulaştığımız resimlerin attributteslerine ulaşabilmek için “attributes” değerini kullanıyoruz. Daha sonra ulaştığımız attributeslerin değerlerinin ne olduğunu öğrenebilmek için getNamedItem ile ulaşıyoruz. daha sonra value ya da name şeklinde alabiliyoruz.

As3 getChildByName Sorunsalı

Actionscript ile uygulama geliştirirken bir çok hatayla karşılaşabilirsiniz. Bunların bazıları dikkat dağınıklığı olsada bazılarıda flashtan kaynaklanabiliyor ve kendimiz bu sıkıntıya çözüm üretmek zorunda kalabiliyoruz. Çözüm için internette de araştırdığımda benimle aynı sıkıntıyı yaşayan bir kaç kişiyi daha gördüm.

Linkage ile oluşturduğum bir objeye statik olarak bir değişken atamak istediğimde içine getChildByName ile ulaştığımda hata ile karşılaşıyordum “undefined property”  bunu çözebilmek için yapmam gereken yok ise basit bir yolmuş  şöyle ki ;

var box:Box = new Box();
box.name = "box";
box.walk = true;
addChild(box);

var w:Boolean = MovieClip(getChildByName("box") as Box).walk
trace(w);

İlk olarak Box adında Linkagedan yani Libraryimden bir obje çekip sahneye ekliyorum. Daha sonra eklediğim objeme statik olarak içine bi değişken saklıyorum ve bu değişkenle oynuyorum. Bunu kullanmaya çalıştığımda yukarıda bahsettiğim hatayla karşılaşıyordum. Mantık ise şu;

Bir değişken oluşturdum. Boolean değerini sakladı sebebi ise dönen değerin yukarıda belirttiğim gibi boolean bir değer olmasıydı. box.walk = true; eğer string bir değer olsaydı string değer verirdim. Daha sonra ise linkage ile eklediğim objeme ait olduğunu bildiriyorum. as Box bu şekilde demiş oluyorum ki ; Movieclibin içinde Box ile ilgili bir değişkenim var ve bu şekilde o değişkeni çekebilir ve üzerinde oynamalar yapabilirim.

JQuery ile Append ve Animasyon

Konunun başlığını ne koyacağıma karar veremedim o yüzden böyle bir başlık açmayı uygun gördüm. Aslında yaptığım örnekte append özelliğinin ne olduğunu görebilmek için yapmıştım ama biranda aklıma animasyon yapmak geldi. Append özelliği ile belirlediğim bir nesnenin altına nesne ekleyebiliyoruz. Ayrıca appendTo() özelliği ile de tam tersini yapabiliyoruz. Yani belirttiğimiz objenin üstüne obje ekleyebiliriz.

İlk olarak jquery kütüphanesini html sayfanıza eklediğinizi ve script taglarının içerisine document.ready direk oluşturduğunuzu varsayarak devam ediyorum. Ayrıca aşağıda html ve javascript taglarını giremediğim için resim olarak paylaşmak zorundayım. Burada basitçe kodlardan bahsetmek gerekirse;

ilk olarak st (setinterval) değerimi oluşturuyorum bu benim 10 saniyede fonksiyon tetikleyecek değişkenim. Eğer ben 10 yerine 30 – 40 vb değerler verseydim o değerler aralığında animasyonu sağlardır. Bir nevi FPS değeri.

body ile append yaparak body tagımın altına bir adet id’li DOM elementi ekliyorum. Daha sonra bununla animasyon yapacağım için ID belirlemem mantıklı bir davranış olacaktır.

Daha sonra CSS özelliklerini veriyorum kutumun belli olabilmesi için. Daha sonra bir IF koşulu koyup eğer belirlediğim değere eşit ya da aynı ise değerimi sabitleyip olduğu yerde kalmasını sağlıyorum. Daha sonra yukarıda oluşturduğum st(setinterval) değerini silip null diyerek boşaltıyorum içini.