Professional Documents
Culture Documents
12 Agustos
12 Agustos
Web Programcl
Fscommand ve iki Flash
animasyonu arasnda iletiim
Fiyat: 9.000.000 TL
(KDV ve gnderim creti dahil)
Sipari iin:
http://abone.vogel.com.tr
CHIP WORKSHOPda BU AY
CHIP Workshop
Klasrn
ayralaryla
birlikte sipari
edebilir ve
kendi arivinizi
oluturabilirsiniz.
Kesin, biriktirin,
kendi arivinizi oluturun
CHIP Workshop Klasr
>> >>
Flash Serisi
Nesneler
Photoshop Serisi
Kabartma Yzeyli ekiller
Excel Serisi
USERFORMLAR LE ALIMAK - 1
Web Programcl
65 CHIP Workshop >>
H
atrlayacaksnz, getiimiz ay ge-
tURL() fonksiyonuyla Flash ile web
sayfas arasnda iletiim kurmu,
hatta Flash animasyonumuz zerinden
web sayfamz kontrol edebilmeye rnek
olarak Flash animasyonu iinden sayfam-
zn arka plan rengini deitirmitik. Bu ay
ise Flash-JavaScript arasnda etkileim ku-
rabilen bir baka fonksiyon olan fscom-
mand() global fonksiyonunu kullanacaz.
nce fonksiyonumuzu biraz tanyalm.
fscommand()
Flash 3 ile kullanlmaya balanan fscom-
mand sayesinde Flash animasyonu, Stan-
dalone Player (Flash animasyonlarnn ken-
di bana alabilmelerini salayan film oy-
natc ya da Host aplikasyonu (Flash ani-
masyonuna alabilmesi iin evsahiplii
yapan web tarayc veya Macromedia Di-
rector gibi harici aplikasyonlar) ile iletiim
kurabilmektedir.
Fscommandin kullanld balca 3 du-
rum sz konusudur:
1. Standalone Playere belli bir takm ko-
mutlar gndermek iin,
2. Web taraycdaki JavaScripte herhangi
bir komut gndermek iin,
3. Macromedia Director filmindeki Lin-
goyla iletiime gemek iin.
Biz bu durumlardan ikincisi zerinde du-
racaz. Ancak ilki ile de ilgili biraz bilgi ve-
relim.
Fscommand() fonksiyonunun kullanm
aadaki gibidir.
fscommand(komut, argman)
komut Uygulamaya gnderilen komut
dizesi (string). Standalone Player iin kulla-
nlan sabit komut isimleri olabilecei gibi,
JavaScript iin kendi tanmladmz bir de-
er de olabilir.
argman Uygulamaya gnderilen komut-
la ilgili parametre dizesi (string). Standalo-
ne Player iin kullanlan sabit komut isimle-
ri olabilecei gibi, JavaScript iin kendi ta-
nmladmz bir deer de olabilir.
Komut ve argman deerleri, ActionSc-
ript ifadeleri olmad srece ift trnak ii-
ne yazlmaldr. rnein kendi bana al-
acak Flash animasyonunun tam ekran ola-
rak almasn salamak iin animasyonu-
nuzda Flash aksiyonu olarak aadaki de-
erin girilmesi gerekir.
fscommand(fullscreen, true);
Standalone Playera gnderilen bu ko-
mut sayesinde oynatc Flash animasyonu-
nu tam ekran bir pencere iinde gstermesi
gerektiini anlar. Standalone Player iin
kullanlabilecek komut ve argmanlar un-
lardr.
<< <<
Fscommand ve iki Flash
animasyonu arasnda iletiim
Bu ay Flashin web sayfasyla iletiim kurabilmesine imkan veren bir dier nemli fonksiyon olan fscom-
mand fonksiyonunu tanyp, nasl kullanldn reneceiz. Ayrca bu fonksiyonu kullanarak iki farkl
Flash animasyonu arasnda iletiim kurmann yolunu greceiz.
Web Programcl
>> >>
<< CHIP Workshop 66
Bu tabloya bakarak kendi bana ala-
cak Flash animasyonunun hem tam ekran
olarak alp hem de film boyutunu orijinal
tutmasn salamak iin animasyonunuzda
Flash aksiyonu olarak aadaki deerlerin
ikisinin de u ekilde girilmesi gerektiini
syleyebiliriz.
fscommand(fullscreen, true);
fscommand(allowscale, false);
fscommand ile JavaScript etkileimi
fscommand fonksiyonu ile web sayfasnda-
ki JavaScripte bilgi gndermek iin Flashta
tek yapmanz gereken ey fscommand ile
bir komut ve bir argman yazmaktr. Asl
yaplacak ilem web sayfasnn kodlarnda
yer alr. Diyelim ki aynen geen ay olduu
gibi Flashtan web sayfamza JavaScript
yardmyla nce bir mesaj gnderen sonra
da sayfamzn arka plan rengini deitiren
bir uygulamay bu defa fscommand meto-
duyla yapmak istiyoruz. O zaman buyurun,
atlyemize geelim.
1. Flash pencerenizde bo bir sayfa an ve
bir isim vererek uygulamanz uygun bir ye-
re kaydedin. Oluturduunuz yeni sayfan-
zn iine buton yapmak iin bir ekil izin.
Bir yuvarlak olabilir mesela.
2. izmi olduunuz ekli seili hale getirin
ve Flash mensndeki Insert / Convert to
Symbol seeneini tklayn ya da klavyeniz-
deki [F8] tuuna basn. Alan pencereden
Button radyo dmesini sein ve OK tuu-
na basn. izmi olduunuz ekil artk bu-
ton haline geldi.
3. izmi olduunuz ekli seili halde iken
ve Action panelinden fscommand() acti-
on'n ift tklayn. Action script penceresi
iinde semi olduunuz action ile ilgili
kodlar belirecektir.
4. Kodlarn stnde yer alan Command ala-
nna mesaj goster Parameters alanna ise
Flash animasyonundan selam yazn. Bu
durumda ActionScript panelindeki kodlar
fscommand("mesaj goster",
"Flash animasyonundan selam");
eklinde olacaktr.
5. Flash dosyanz kaydedin ve menden Fi-
le / Publish seeneini tklayarak ya da
[Shift+F12] tularna basarak Flash dosya-
nz yaynlayn. Bu durumda .fla dosyanzn
kaytl olduu klasrde HTML ve SWF olarak
iki yeni dosya daha oluacaktr.
6. Bu noktada Flash dosyamz hazr. Artk
SWF dosyasn kullanacak olan HTML dok-
mannda Flash'i kontrol edecek JavaScript
kodlarn oluturabiliriz. HTML dosyanz
HTML editrnzde ya da Notepad'te an.
HTML sayfanzda Flash filminizi sayfanza
ekleyen kodlarda <OBJECT> taks iine
ID="Film"
parametresini ekleyin. <OBJECT> taks
iinde NAME isimli bir parametre olmad-
ndan emin olun. Varsa silin. Aksi takdirde
JavaScript-Flash etkileimi Netscape 6.2 ve
st versiyonlarda almayacaktr.
allowscale true ya da false Flash filminin boyutunun alan pencere ile
birlikte deimesi iin true, orijinal boyutunda
sabit kalmas iin false deerini semek gerekir.
exec applikasyon_ismi Flash filminin harici bir aplikasyonu
altrmasnda kullanlr. Argman olarak
kullanlacak deer uygulamann ismidir. Gerektii
durumda greli ya da salt yol adresini de eklemek
gerekebilir.
C:/WINDOWS/NOTEPAD.EXE gibi
fullscreen true ya da false Flash filminin tam ekran bir pencerede almas
iin true, orijinal boyutunda bir pencerede
almas iin false deerini sein.
quit Flash filmini sona erdirip Standalone Player
kapatr.
showmenu true ya da false Flash filminin gsterildii Standalone Playerda
sa tklanmas durumunda ekranda men
grnp grnmemesini kontrol eder. Mennn
grnmesi iin true deerinin seili olmas
gerekir.
trapallkeys true ya da false Baz durumlarda animasyonunuzun klavye
tularna duyarl olmas gerekebilir. Mesela oyun
uygulamalarnda olduu gibi Bu durumda true
deerli trapallkeys komutu, klavye vurularn
Flash animasyonunuza gnderecektir.
Komut Argman levi
Web Programcl
67 CHIP Workshop >>
<< <<
Nesneler
22 CHIP Workshop >>
<< <<
isimler = new Array("ali", "fatih", "eyp");
isimler.reverse();
trace(isimler);
//isimler = eyp, fatih, ali
slice
dizi iinden eleman karmak iin kullanlr.
isimler = new Array("ali", "fatih", "eyp" ,
"didem");
isim=isimler.slice(1,3);
trace(isim);
// slice(1,3) ilk deer kanc elemandan
balayacan, ikinci deer ise ilemin ka-
nc elemanda biteceini belirtmektedir. 1.
eleman fatih, 3. eleman ise didem'dir. 1. ve
2. elemanlar iin slice ilemi uygulanr.
// sonu: fatih, eyp
sort
Dizideki elemanlar belirli bir sraya dizmek
iin kullanlr.
isimler = new Array("ali", "fatih", "eyp",
adiye, sevgi, didem);
isimler.sort();
trace(isimler);
// ali,didem,eyp,fatih,sevgi,adiye
splice
Dizi iindeki elemanlar silmek iin kullan-
lr.
splice(,) kanc elemandan balayp ka
tane silineceini belirtilir.
isimler = new Array("ali", "fatih", "eyp", "sezen",
"pelin", "bahar");
isimler.splice(3,3);
trace(isimler);
// ali,fatih,eyp
isimler = new Array(ali, adiye, fatih,
sevgi , didem, eyp)
ilk deer dizide 0. deikendir. Yani dizi
elemanlar sfrdan balar.
concat
dizilerin iine yeni elemanlar eklemek veya
iki diziyi birletirmek iin kullanlr.
erkek = new Array("ali", "fatih", "eyp");
kz = new Array("adiye", "sevgi", "didem");
isimler=erkek.concat(kz);
trace(isimler);
join
dizideki elemanlarn tmn aralarna iste-
nilen bir karakter ekleyerek tek bir string
haline evirir.
erkek = new Array("ali", "fatih", "eyp");
isimler=erkek.join("-");
trace(isimler);
toString
join metodu ile ayndr, yalnz deerler ara-
sna yalnz virgl eklenerek tek bir string el-
de edilir.
push
bir dizinin sonuna ekleme yapar. Atama ya-
plan say deikeni toplam deer saysn
verir.
isimler = new Array("ali", "fatih", "eyp");
say=isimler.push(adiye, sevgi, didem);
trace(say);
trace (isimler);
unshift
push komutunun tersidir, dizinin bana ek-
leme yapar.
isimler = new Array("ali", "fatih", "eyp");
say=isimler.unshift(adiye, sevgi, didem);
trace(say);
trace (isimler);
shift
dizideki ilk eleman kartmak iin kullan-
lr.
isimler = new Array("ali", "fatih", "eyp");
isim=isimler.shift();
trace(isimler);
//isim = ali , isimler= fatih, eyp
pop
dizideki son eleman kartmak iin kullan-
lr.
isimler = new Array("ali", "fatih", "eyp");
isim=isimler.pop();
trace(isimler);
//isim = eyp , isimler= ali, fatih
reverse
dizi iindeki elemanlarn sralann tersine
evirir.
Key
Klavye tularna dorudan eriim sala-
maktadr. Key komutu sayesinde nesneleri
klavye ile kontrol edebilmekteyiz. Flash ile
oyun tasarmnda daha ok ihtiya duyul-
maktadr.
onClipEvent (enterFrame) {
if(Key.isDown(Key.RIGHT)) {
setProperty ("", _x, _x+10);
}}
veya
onClipEvent (enterFrame) {
if(Key.isDown(39)) {
setProperty("", _x, _x+10);
}}
Yukardaki kodlar bir movie clipe atan-
mtr. Klavyeden sa ok tuuna basldn-
da movie clip bulunduu yerden saa do-
ru 10 piksel kaymaktadr.
Key.isDown() parantez iine aadaki
klavye kodlar yazlarak yukardaki rnekte-
ki gibi kullanlabilir.
BACKSPACE (9).
CAPSLOCK (20).
CONTROL (17).
DELETEKEY (46).
DOWN (40).
END (35).
ENTER (13).
ESCAPE (27).
HOME (36).
INSERT (45).
LEFT (37).
PGDN (34).
PGUP (33).
RIGHT (39).
SHIFT (16).
SPACE (32).
TAB (9).
UP (38).
Bir movie clip oluturun ve aadaki ko-
du ekleyin.
onClipEvent (enterFrame) {
trace (Key.getAscii());
}
movieyi test edin, her bastnz tuun
ascii deerini elde edeceksiniz.
Key.getCode(); eklerseniz Flash ierisin-
de kullanabilmek iin tularn kodlarn el-
de edeceksiniz.
Macromedia Flash ile ilgili her trl soru
ve isteklerinizi bize iletebilirsiniz.
Ali YCEL
aliyucel@chip.com.tr
Flash Serisi
>> >>
<< CHIP Workshop 23
Photoshop Serisi
23 CHIP Workshop >>
<< <<
Kabartma Yzeyli ekiller
k grnen grafikler hazrlamak iin mutlaka eklenti paketlerini kullanmanz gerekmez.
Doru efektleri yerinde kullanarak siz de baarl almalar yapabilirsiniz.
ekil 1
ekil 3
ekil 4
ekil 2
in akas bir yana, bu aslnda sizlere sy-
lemek istediim ok nemli bir nokta idi. O
da u: Excel bir veritaban program deildir.
Veritabanlarnda bulunan zellikleri Ex-
celden beklemek yanl olur. nk hep tek-
rarladmz gibi, Excel bir hesap tablosudur
ve mkemmel bir hesap tablosudur. Ancak
yine de Excel veritaban programlarn yne-
tebilir ve kendisi de basit bir veritaban zel-
liine sahip olabilir. Buradaki basit ifademi
sakn yanl anlamayn. lerki safhalarda bu
sylediklerimiz daha net anlalacaktr. im-
di konumuza dnelim.
ncelikle unu istiyoruz: KAYDET dme-
sine her tkladmzda veriler bir alt satra
yazlsn.
Bunu yapabilmek iin bir bilgiye sahip ol-
mamz gerekiyor. Bu bilgi de u: En son veriyi
hangi hcreye yazdracanz. Bunun iin Ex-
cel sayfamzda bulunan dolu hcreleri say-
drmamz gerekiyor. Saydracamz dolu
hcreler A stunu iin gereklesin. Bu say-
drma ilemini, daha rahat anlayabilmek iin
Excel ilevleriyle gerekletirelim. Bunun iin
E1 hcresine aadaki forml yazn.
=BA_DE_DOLU_SAY(A1:A100)+1
Forml yazdnzda ekil-6daki sonu
ile karlaacaksnz.
Bu formlde A1:A100 arasndaki hcrele-
re bakld ve ka tane dolu hcre olduu sa-
yld. Dolu hcre says 2 olarak bulundu.
Yazdracamz veri bir sonraki hcrede ola-
ca iin dolu hcre says 1 artrld. Olay bu
kadar. O zaman biraz nce yazdmz kodda
bir deiiklik yapacaz.
Cells(2,A)da 2 sabiti yerine srekli de-
ien E1 hcresindeki sonucu yazacaz. Bu-
nun iin bu satrlar aadaki gibi deitire-
ceiz.
Private Sub CommandButton1_Click()
Cells([E1], "B").Value = TextBox1.Value
Cells([E1], "C").Value = TextBox2.Value
Cells([E1], "D").Value = TextBox3.Value
Cells([E1], "A").Value = 1
End Sub
Burada ksa bir aklama yapmak istiyo-
rum. Kodlama yaplrken bazen satrlar uza-
Excel Serisi
>> >>
<< CHIP Workshop 37
unun hem Caption (Balk) hem de Name
(sim, Ad) zellikleri vardr. Biz ekil-3te sa-
dece Caption zelliklerini deitirdik. ekil-
4te Label1 nesnesini setik ve Properties
(zellikler) penceresinden bahis konusu
zelliklere baktk.
UserFormun tasarm bitti ise artk kod-
lamaya geebiliriz demektir.
Ne yapacaz?
KAYDET dmesine tkladmzda TextBox1
nesnesindeki veri B2 hcresine, TextBox2
nesnesine yazdmz veri C2 hcresine,
Textbox3 nesnesindeki veri de D2 hcresine
yazlacak. Son olarak A2 hcresine ne yazla-
ca sorusu kald geriye. O da ok basit. A2
hcresine 1 yazlacak. imdi bahsettiimiz
bu ilemleri gerekletirelim.
Bunu yapabilmek iin tasarm aamasn-
da iken KAYDET dmesine fare ile ift tkla-
yarak UserForma ait kod sayfasn an. A-
lan bo beyaz sayfaya da aadaki kodu ya-
zn.
Private Sub CommandButton1_Click()
Cells(2, "A").Value = 1
Cells(2, "B").Value = TextBox1.Value
Cells(2, "C").Value = TextBox2.Value
Cells(2, "D").Value = TextBox3.Value
End Sub
Kodu yazdktan sonra ister klavyeden
[F5] tuuna basn, isterseniz Run mensn-
den Run komutunu altrn ya da ara u-
buu zerinden altr (Run) dmesine tk-
layn.
UserForm alacaktr. Form zerinde
bulunan TextBoxlar ekil-5tekine benzer
doldurarak KAYDET dmesine tklayn. Ve-
rilerinizin 2. satra sra ile yazldn gre-
ceksiniz.
Tamam, tamam hemen kzmayn. Ben
de farkndaym. Kaydet dmesine her tk-
ladnzda ayn satrlarn zerine yazyor.
Sinir edici bir durum. Aslnda hep bir alt sa-
tra yazlmas gerekiyordu. Ama bana hi
kzmayn. nk yukarda ne sylediysem
ben onu yaptm. Veriler A2, B2, C2 ve D2ye
yazld. nann bundan baka bir ey syle-
medim.
masn diye uzun ifadeler yerine ksa ifadeler
kullanabiliriz. [E1] de bu ksa ifadelerden bi-
ridir. Aada yazlanlar hep ayn eyi ifade
ederler.
Cells(1,5)
Cells(1,E)
Range(E1)
[E1]
Son olarak akla taklabilecek bir noktay
aklayalm. Daha nce A stununa yazdran
kodu en ste yazmtk. Bu defa ise en alta
yazdk. Bunun nedeni u.
E1 hcresindeki verinin 3 olduunu var-
sayalm. KAYDET dmesine tklanldnda
A3 hcresine veri yazdrlacak. Ancak E1 hc-
resindeki say da annda deiecek ve 4 ola-
cak. Bundan sonraki verileri B4, C4 ve D4e
yazacakt. te buna engel olmak iin basit
bir nlemdi bu. Daha sonra E1 hcresindeki
forml kod sayfasna tayacamz iin bu-
na ok da kafa yormanza gerek olmad ka-
naatindeyim.
Artk her tklamada veriler bir sonraki
hcreye yazlyor. Fakat farkndasnz ki
programclk sadece program yapmakla bit-
miyor. Program yapmaktaki en nemli unsur
HATA DENETMni doru yapmaktr. Ne de-
mek istediimizi aklayalm.
M. Temel Korkmaza ait verileri bir defa
kaydettiniz. Ancak yanllkla KAYDET d-
mesine bir daha tkladnzda ne olacak? Yi-
ne ayn veriyi bir sonraki satra yazdracak.
Buna birka noktadan nlem alabiliriz. Bun-
lardan bir tanesi UserForm zerine yeni bir
dme eklemek. Bu dmenin ii en son ve-
riyi silmek olsun. O halde yeni dmeye SON
SATIRI SL baln (Caption) koyalm ve aa-
daki kodu bu dmeye ekleyelim.
Private Sub CommandButton2_Click()
Cells([E1] - 1, "B").Value = ""
Cells([E1] - 1, "C").Value = ""
Cells([E1] - 1, "D").Value = ""
Cells([E1] - 1, "A").Value = ""
End Sub
Hatrlarsanz E1 hcresinde dolu satr sa-
ysnn bir fazlas vard. Oysa bu defa sadece
dolu satr saysn bulacak ve o sayya teka-
bl eden satrn ieriini boaltacaz. Bura-
da silmek yerine boaltmak ilemini kullan-
yoruz.
Hata denetimimiz halen bitmi deil.
nk A stununa srekli olarak 1 yazyor.
Aslnda bunu deitirmenin kolay olduunu
hemen anladnz. Yaplmas gereken ilem
basit. Cells([E1], "A").Value = 1 satrn
Cells([E1], "A").Value = [E1] 1 olarak dei-
ekil 5
ekil 6
Excel Serisi
<< <<