Monday, January 26, 2009

back to the basics action script 2

çok uzun süredir flash ve action script ile oynamamışdım. bu gece oynamak durumunda kaldımki bu desktopu upgrade etmem lazım geldiği yine aklıma geldi. çok kanırdı flash çalışırken. hadi yavaşlık bi nebze çözülebilir sabredince geçio. ekranın kayıklıkları fitil etti.

neyse gelelim konumuza. benim sözlükde bi oyun yapasım vardı uzun süredir adam asmaca düşünüodum. onun için araştırmaya başladım. iki yol mevcut biri ajax / javascript biri flash / swf. server amerikada olduğundan çok ajax call yaparsam kanırık durcak(yavaş çalışcak django ile örneği) ve şükela fontlarla eğlenceli bişey yapamicam. sonuç flash olmalı.

google "hangman" veya "hang man" arayınca kütür kütür dökdü. kurcalarken kurcalarken hedef bulundu. biçilmiş kaftan grafikleri çok gelişkin değil ama algoritma çalışıyor. statik içine verilen kelimelerde mis gibi çalışan bu dalgayı sözlüklen birleşik çalışır duruma getirmeliyim. hemen aklıma gelen flashvars. bi kaç şekil denedim swf ye gönderemedim. sonra bunu ajaxdan çektirsem daha şükela olmazmı dedim. fla da gereken kod değişikliğini yaptım.

loadVariables("http://www.sozlukcell.com/ajaxProxy.aspx?cmd=GetAdamAsmacaKelime",_root);


yemedi bunu. allah allah dedim sonra _root u "_root" yaptım yemedi sora _gloabl ve "_global" de denedim yemiyor. değişkenleri bi türlü alamıom serverdan swf ile. aynı url firefoxdan çağırıyorum kelime ve anlam kütürt diye geliyor. sonra action script 2 de bu iş nasıl düzgün olur diye bakınırken bi örnek daha buldum.

var veriler:LoadVars = new LoadVars();
var yollagerial:LoadVars = new LoadVars();
yollagerial.sendAndLoad(someurl,veriler,POST)


bu yollada deniyorum deniyorum olmuyor. bu arada ben biliyorum zekiyim ya o POST u GET yapıp denedim uzunca bi süre. en sonunda mesele çözüldü. meğer swf GET den alamıomuş. garip olan şu ki get ile bi veri almak benim bildiğim posttan kolaydır. head de gidip gelmez veriler url de yazar. neyse son hali şudur:

var veriler:LoadVars = new LoadVars();
var yollagerial:LoadVars = new LoadVars();
yollagerial.sendAndLoad("http://www.sozlukcell.com/ajaxProxy.aspx?cmd=GetAdamAsmacaKelime&"+Math.random(),veriler,"POST");
trace(veriler.kelime);
veriler.onLoad = function(success) {
if (success) {
trace("variables loaded");
_root.kelime=veriler.kelime;
getURL("javascript:updateAnlam('"+veriler.anlam+"');");
afterWordLoadNewGame();
} else {
trace("Error loading page");
yollagerial.sendAndLoad("http://www.sozlukcell.com/ajaxProxy.aspx?cmd=GetAdamAsmacaKelime&"+Math.random(),veriler,"POST");
}
};


değinmem gereken birinci konu sanırım sizinde merak ettiğiniz gibi Math.tandom(). serverda herşey cache den geliyor o sebep url nin götüne böle abuk bişey eklenmezse bi önceki select lenen şey geliyor. bu sayede cache den kurtulmuş oluyoruz.

bide onload konusuna taşıdım yeni oyunun kurulmasını bu sayede sözlükden yeni kelime gelmedikçe oyun başlamıyor. v1(versiyon 1) adam asmaca benim sözlükden çalışır oldu :) mutlu hissettim kendimi uzun süredir böle şeker şeyler kodmuodum. neyse bide skor bord yaptım ki kendisi aynı twitter daki mesajlaşmalara benzedi.

bu arada neden as3 yapmadın aga daha tatlı olmazmıydı diyen çıkar hemen diyem compiler versiyonu 3 e dayayınca oyun çalışmaz oldu üşendim onlarıda yenilemeye. biri grafikleri adam ederse aslında as3 e de taşırım why not.

hadi iyi eğlenceler.

No comments:

odd string diff

 https://leetcode.com/problems/odd-string-difference/ Beats 19.92% of users with Java   class Solution { public String oddString ( S...