Forum'da ara:
Ara


Yazar Mesaj
Mesaj28.09.2008, 16:04 (UTC)    
Mesaj konusu:

Web Ortamına Aktarma

Yaptığınız animasyon herşeyiyle bittiğinden eminseniz, onu "swf" uzantılı olarak export etmek lazım. Ancak bu şekilde herhangi bir browser'a okutabiliriz. Acak yaptığınız animasyonun birde "fla" uzantılı olan bir kopyasını kaydetmeyi unutmayın. Flash'ta menü çubuğundaki File > Export Movie'ye bastığınız zaman size nereye ve hangi isimde kaydedeceğinizi soran bir pencere çıkacaktır. Bunları belirttikten sonra "swf" uzantılı flash animasyonunuz hazır demektir. Eğer bir HTML editörü kullanıyorsanız işiniz çok basit. Mesela FrontPage için yaptığımız animasyon bir plug-in'dir, yani eklentidir. Menü çubuğundan Insert > Advanced > Plug-in'e basın. Karşınıza çıkacak pencereden, Browse yani gözat'ı tıklayın animasyonun yerini söyledikten sonra boyutlarını belirtin. Burada dikkat edeciğiniz bir şey var. Animasyonun boyutu ne kadar büyürse büyüsün dosyanızın boyutu değişmez, ancak ekran kartından doğabilecek sorunları da çözmez. Yani kullanıcının ekran kartının RAM kapasitesi düşükse animasyonu oynatmakta zorluk çekecektir. Bu yüzden animasyonu ergonomik kullanmak gerekir. Plug-in properties penceresindeki diğer seçenekler kenarlıklarla ve nereye yanaşık olacağı ile ilgilidir. OK düğmesine bastığınızda, sayfanızda elektrik fişine benzer bir şekil kalacaktır. Alttaki sekmelerden Preview sekmesine tıkladığınızda animasyonu izleyebilirsiniz.

Buraya kadar kolay ancak bazıları HTML sever. Sevmeyenlerinde okumasında fayda var. Yaptığınız animasyonun HTML kodlarını öğrenmek için Flash programında File > Publish Preview > HTML'ye basarak bulabilirsiniz. Karşınıza sürekli kullandığınız browser açılacak. Buradan View > Source (Görünüm > Kaynak) ile tüm kodları kullanabilirsiniz. Mesela aşağıdaki gibi bir kod çıkacaktır


Kod:
HTML>
<HEAD>
<TITLE>ses</TITLE>
</HEAD>
<BODY bgcolor="#CC6633">
   <!-- URL's used in the movie-->
   <!-- text used in the movie-->
   <OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
   codebase = "http://active.macromedia.com/flash2/cabs/
      swflash.cab#version=4,0,0,0"
   ID=ses WIDTH=400 HEIGHT=400>
   <PARAM NAME=movie VALUE="webteknikleri.swf">
   <PARAM NAME=menu VALUE=false>
   <PARAM NAME=quality VALUE=high>
   <PARAM NAME=bgcolor VALUE=#CC6633>
   <EMBED src="webteknikleri.swf" menu=false quality=high
      bgcolor=#CC6633 WIDTH=400 HEIGHT=400
   TYPE="application/x-shockwave-flash"
   PLUGINSPAGE= "http://www.macromedia.com/
   shockwave/download/index.cgi?
   P1_Prod_Version=ShockwaveFlash">
   </EMBED>
   </OBJECT>
</BODY>
</HTML>


Şimdilerde bazı arkadaşlar diyorki "- ben bazı sitelerde dolaşırken, animasyonun üzerine sağ tıklıyorum sadece bu ibare çıkıyor:
Nasıl oluyor bu?". Publish settings'e basın ve karşınıza gelen pencereden HTML sekmesini tıklayın. Burada "Display menu" seçeneği işaretlidir. Bunu kaldırın ve tekrar "Publish Preview in HTML" yapın. Yukarıdaki kodlarda da göreceğiniz gibi <PARAM NAME=menu VALUE=false> olacaktır. Bu da animasyonun üstüne sağ tıkladığınızda menüyü göstermeyecektir. Hazır Publish Settings'i anlatıyorken biraz bundan bahsedelim. Template kısmından hangi formatta publish edeceğinizi belirtiyorsunuz. Biz burada "Default" yani "Flash only" seçeneğini kullanacağız. Ancak Javascipt destekli olarak, Java applet destekli olarak hatta Quicktime destekli olarak ta publish edebiliriz. Dimensions kısmında, ister piksel cinsinden ister yüzde (Percent) cinsinden isterseniz yaptığınız çalışmanın boyutunu koruyarak (Match Movie) publish edebilirsiniz. Playback kısmında dört seçeneğimiz var bunlardan ikincisini az önce menünün saklanmasında anlattık. Diğerleri, açılışta ilk frame'in gösterilip gösterilmeyeceğini belirten (Paused at start), bir döngü içinde mi oynatılacağını belirten (Loop) ve son olarak kullandığını fontların windows'un kendi fontlarına mı adapte edileceğini belirtir. Tüm bunlar ziyaretçide çalışacaktır. Diğerleri animasyonun kalitesini (Quality), animasyonun arkasına koyduğunuz DHTML'in görünüp (Opaque), görünmeyeceğini (Transparent) (Window mode - yalnızca Windows işletim sisteminde geçerlidir), ölçülerini (Scale) ve HTML ile Flash'ta nereye yanaşık (Alignment) olduğunu belirtir.

Yukarıdaki kodlara dikkat ederseniz <OBJECT> ve <EMBED> tag'ları görürsünüz. <OBJECT> tag'ı Internet Explorer, <EMBED> tag'ı ise Netscape tarafından tanınıyor. <OBJECT> tag'ı <EMBED> tag'ını kapsamış olması lazım. Bu kullanıcının browser'ının gerekli Flash player plug-in'ini yüklenmiş kabul eder. Aksi takdirde kırık bir link resmi çıkar. Eğer yukarıdaki gibi bir <OBJECT> tag'ına "classid" eklerseniz gerekli plug-ini bulamayınca kullanıcıya plug-in'i indirmesini söylüyor. Bu kod <EMBED> tag'ında "PLUGINSPAGE" ile yapılır. Yukarıda anlatmadığımız bir tek bgcolor kaldı. O da arka fon rengini belirtir.

Dikkat!!: Bütün bu kodları kullanmadıysanız ve bir HTML editörü ile animasyonu sayfanıza eklediyseniz. HTML kodları aşağıdaki gibi kalacaktır.


Kod:
<embed width="128" height="128" src="flash6.swf">


Böyle bir kodun altına mutlaka aşağıdaki gibi bir uyarı yazısı ve Plug-in'i yükleyebileceği bir link verin. Hepsi bu kadar.
Resme vereceğiniz link: http://www.macromedia.com/shockwave/...ShockwaveFlash
Mesaj29.09.2008, 15:46 (UTC)    
Mesaj konusu:

Flash`a Yeni Bir Effect Paneli Eklemek


Flash 8` de Tools paneline yeni eleman ekleme yöntemi anlatılmıştı. Bu bölümde de yeni bir efekt ekleme yöntemi anlatılacaktır. Bu yazı, konuyu size öğretmek için değil sadece flash`ın bu tür işlemleri nasıl oluşturabildiğini görmeniz amacını ile yazılmıştır. Bu nedenle konuyu okuyup öğrenerek sizde kendinize göre bir effect yaratma beklentisinde olmayınız.

2 örnek verilecektir. İlkinde flash içinde mevcut olan dropShadow efekti kodlarını kullanarak kopya bir efekt paneli , ikincisinde ise mevcut olmayan yeni bir efekt (fade veya solma efekti) oluşturulacaktır.


Uygulama:

1- Golge efekti: (dropShadow kodları modifiye edilerek hazırlanacaktır) ÖRNEK ÇALIŞMAYI İNDİR

Effect panel kodları kurulumda değiştirmediyseniz alttaki dizinde bulunmaktadırlar:

C:\Program Files\Macromedia\Flash 8\en\First Run\Effects

Effect klasörünü açtığınızda burada 3 tür dosya bulacaksınız. jsfl, xml ve swf dosyası. Burada göreceğiniz shared.jsfl dosyasında diğer efektlerin ortak kullandığı paylaşılan kodlar vardır. Jsfl dosyaları efektin oluşması için gereken kodları taşır. Xml dosyası ise efekt paneli açıldığında göreceğiniz elemanları(buton,metin, girdi kutuları vs) oluşturur. Swf dosyaları ise (bu mutlak gerekli bir eleman değildir) bu çalışmaların doğrudan panelden değil de swf dosyası üzerinden yapılmasını sağlar. Biz heriki çalışmada da swf dosyası kullanmayacağız.

Gerek xml gerekse jsfl dosyasının içeriğini görmemiz için notepad programını kullanmanız yeterli olacaktır. Şimdi üstteki dizindeki effect klasörünü açalım. Buradaki DropShadow.xml dosyası üzerine sağ klik yapıp düzenle komutunu vererek notepad ile açalım.Görüntü şöyle olacaktır:

Kod:
group name="Effects">
<effect name="Drop Shadow" id = "Drop Shadow" />
<source file = "DropShadow.jsfl" />
<allow types = "button, shape, movie clip, graphic, text, bitmap" />

<properties>
<!-- 17895690 = 0xffffff and 10066329 = 0x999999 -->
<property name="Color" variable="color" min="0" max="17895690" defaultValue="10066329" type="Number" />
<property name="Alpha" variable="alpha" min="0" max="100" defaultValue="75" type="Number" />
<property name="X Offset" variable="xOffset" min="-1000" max="1000" defaultValue="10" type="Number" />
<property name="Y Offset" variable="yOffset" min="-1000" max="1000" defaultValue="10" type="Number" />
<property name="First" variable="first" defaultValue="1" type="Number" />
</properties>

<!-- > buttons="accept, cancel"> -->
<dialog id="dropshadow-dialog" title="Drop Shadow">
<flash id="dropshadow_ui" src="dropshadow.swf" width="772" height="456">
<property id="first" />
<property id="xOffset" />
<property id="yOffset" />
<property id="alpha" />
<property id="color" />
</flash>
</dialog>

</group>



Buradaki kırmızı ile yazılan alanları sileceğiz. Bu haliyle xml dosyası DropShadow isimli swf dosyası üzerinden çalışacaktır. Biz doğrudan panel kullanacağımız için bu kısımları silmemiz gereklidir. Olmuşken TR karekter kullanmamak kaydı ile Türkçe`leştirip şu şeklide hazırlayalım:

Kod:
<group name="Golge Efekti">
<effect name="Golge Ekleme" >
<source file = "golge.jsfl" />
<allow types = "button, shape, movie clip, graphic, text, bitmap" />

<properties>
<!-- 17895690 = 0xffffff and 10066329 = 0x999999 -->
<property name="Renk" variable="color" min="0" max="17895690" defaultValue="10066329" type="Number" />
<property name="Alfa" variable="alpha" min="0" max="100" defaultValue="75" type="Number" />
<property name="X Degeri" variable="xOffset" min="-1000" max="1000" defaultValue="10" type="Number" />
<property name="Y Degeri" variable="yOffset" min="-1000" max="1000" defaultValue="10" type="Number" />
<property name="Ilk" variable="first" defaultValue="1" type="Number" />
</properties>

</group>



Kodlara dikkat ederseniz golge.jsfl dosyası ile ilişkilendirilmiştir. Şimdi bu dosyayı oluşturalım. Bundan önce üsteki kodları txt dosyasına kopyalayarak golge.xml dosyası ismi ile kaydedelim.

Jsfl dosyası için yine aynı effect klasöründeki DropShadow.jsfl dosyası üzerine sağ klik yapalım. Birlikte aç seçeneğinden notepad yolunu gösterip programı açın. Burada altta göreceğiniz tüm kodları kopyalayın:

Kod:
/**
* The DropShadow effect drops a shadow off the selected items. It can be run
* with an XMLtoUI parameter panel, or with a SWF parameter panel. It is currently
* in SWF mode. To use the XMLtoUI panel, uncomment the "forward(...)" line below.
*
* @author Andrew Guldman, Fluid Inc
*/

/**
* Configure the effect. Create any necessary shared functions.
*/
function configureEffect()
{
// Load shared functions
// The runScript path is relative to the Commands directory.
// shared.jsfl is in the Effects directory
//fl.trace("shared.jsfl path="+ fl.configURI + "Effects/shared.jsfl");
// fl.runScript(fl.configURI + "Effects/shared.jsfl");
//fl.trace("configureEffect(dropshadow)");
}


/**
* Remove the effect.
*/
function removeEffect()
{
reverse();
}

/**
* Perform the effect. Don't do anything.
*/
function executeEffect()
{
var ef = fl.activeEffect;
forward( false, ef.color, ef.alpha, ef.xOffset, ef.yOffset );
}

/**
* Implementation of the drop shadow effect. This could be called from
* the effect file or from the preview.
*
* @param preview Boolean: True to create a preview swf.
* @param color Numeric RGB value
* @param alpha Numeric alpha (0-100)
* @param xOffset Number of pixels to move in x direction
* @param yOffset Number of pixels to move in y direction
*/
function forward(preview, color, alpha, xOffset, yOffset)
{
try
{
doAlert( "forward" );

// initialize
fl.enableImmediateUpdates( true );
fl.runScript(fl.configURI + "Effects/shared.jsfl");

// Shorthand variables
var dom = fl.getDocumentDOM();

// edit the symbol
dom.enterEditMode("inPlace");

// convert the shape into specified type
var libName = Object.fxutil.generateLibName();
Object.fxutil.myTrace(1, "libName=" + libName);
var mySymbolName = dom.convertToSymbol("graphic", libName, "top left");
Object.fxutil.moveToEffectsFolder(mySymbolName.name);

// Copy the selected symbol instance immediately, before monkeying with
// layers, etc.
dom.clipCopy();

// Now select none to facilitate layer manipulation.
// This is important -- the new layer can't be selected if there is
// an active selection in the old layer.
dom.selectNone();

// Put the copies on a new layer. This will make it easier
// to remove the effect later if necessary.
var tl = dom.getTimeline();
var mainLayerName = tl.getLayerProperty("name")
var layerIx = tl.addNewLayer(mainLayerName + " Copy", "normal", false);
var newLayer = tl.layers[layerIx];
newLayer.effectLayer = true;
tl.setSelectedLayers(layerIx, true);
tl.currentLayer = layerIx;
Object.fxutil.myTrace(1, "active layer: current=" + tl.currentLayer + ", selected=[" + tl.getSelectedLayers() + "]");

// Paste the copy in place onto the new layer
dom.clipPaste(true);

// Move the copy
dom.moveSelectionBy({x:xOffset, y:yOffset});
var shadow = dom.selection[0];

// Change the color of the copy
shadow.colorMode = "advanced";
shadow.colorRedPercent = 0;
shadow.colorGreenPercent = 0;
shadow.colorBluePercent = 0;
shadow.colorRedAmount = ((color & 0xff0000) >> 16);
shadow.colorGreenAmount = ((color & 0x00ff00) >> 8);
shadow.colorBlueAmount = (color & 0x0000ff);

// Set the alpha of the copy
shadow.colorAlphaAmount = 0;
shadow.colorAlphaPercent = alpha;

// Make sure that the symbol is not interactive. This doesn't work.
dom.exitEditMode();

if (preview)
{
// Export the preview swf
Object.fxutil.exportPreviewSWF( dom.selection[0] );
}
}
catch (e)
{
fl.trace("Exception in forward: " + e);
}
}


/**
* Remove the effect.
*/
function reverse()
{
try
{
doAlert( "reverse" );

fl.runScript(fl.configURI + "Effects/shared.jsfl");
Object.fxutil.myTrace(1, "CopyToGrid: reverse: start");

// Shorthand variables
var dom = fl.getDocumentDOM();

// Get the name of the main lib item to delete it from the library
var mainLibItem = dom.selection[0].libraryItem;

// edit the symbol
dom.enterEditMode("inPlace");

// Delete layer 2. It contains the copy.
var tl = dom.getTimeline();
tl.deleteLayer(1);

// Break apart the symbol instance on layer 1
tl.currentLayer = 0;
tl.currentFrame = 1;
dom.selectAll();

// Get the name of the library symbol so we can delete it after
// we break it apart
var libItem = dom.selection[0].libraryItem;
dom.breakApart();
var libName = libItem.name;
dom.library.deleteItem(libName);

// go back to the main timeline
dom.exitEditMode();

// delete the folder if it is empty
if (Object.fxutil.folderIsEmpty())
{
doAlert( "deleting effects folder" );
fl.getDocumentDOM().library.deleteItem( Object.fxutil.getEffectsFolderName() );
}
}
catch (e)
{
fl.trace("Exception in reverse: " + e);
}
}


function doAlert( str )
{
//alert( str );
}




Flash programınızı açın ve anamenüden New seçeneğini kullanarak Flash Document değil Flash Javascript Files seçeneğini tıklayın. Bu javascript dosyasında sadece actionscript paneli açılır. Buraya yukarıda kopyaladığınız kodları yapıştırın. Ve bu dosyayı golge.jsfl ismi ile kaydedin. Şu anda elinizde 2 dosya mevcut.( golge.xml, golge.jsfl)

Bu dosyaları effect paneline yapıştırın. Flash programınızı kapatıp açın. Bu restart işlemini yapmazsanız yeni paneliniz görülmeyecektir. Flash programını açtığınızda sahneye bir dikdörtgen çizin , bu dikdörtgenin tamamını seçin ve anamenüden :

Insert--> Timeline Effects kısmına geldiğinizde Golge Efekti adı ile yeni bir efekt panelinin eklendiğini görürsünüz:



Golge ekleme alanına tıkladığınızda alttaki panel açılacaktır.

Mesaj29.09.2008, 15:48 (UTC)    
Mesaj konusu:

Fade (solma) efekti:

Notepad programını açalım ve buraya:

Kod:
//Insert menüsündeki efekt adı
<group name="Solma Efekti">
//Menü alt grup adı
<effect name="Solma Efekti">
//İlişkilendirileceği jsfl dosya adı
<source file="solma.jsfl">
//Efektin uygulanacağı sembollerin adı
<allow types="all">
</group>
<properties>
// Efektin başlatılacağı ilk karenin numarası
<property name="Baslama Karesi" variable="alpha" defaultValue="0" type="Number"/>
//Efektin uygulanacağı kare sayısı
<property name="Kare Sayisi" variable="frameAmount" defaultValue="10" type="Number"/>
</properties>



Bu dosyayı solma.xml adı ile kaydedelim.

Bir Flash javascript dosyası (Flash Javascript Files) açalım. Actionscript paneline alttaki kodları yapıştıralım:

Kod:
function executeEffect(){
var myEffect = fl.activeEffect;
var myDoc = fl.getDocumentDOM();
var myTimeline = myDoc.getTimeline();
var theFrame = myTimeline.currentFrame;
myTimeline.insertFrames(myEffect.frameAmount-1);
myDoc.enterEditMode();
myTimeline = myDoc.getTimeline();
myTimeline.insertFrames(myEffect.frameAmount-1);
myTimeline.createMotionTween(0, myEffect.frameAmount-1);
myTimeline.convertToKeyframes(myEffect.frameAmount-1);
myTimeline.currentFrame = myEffect.frameAmount-1;
myDoc.selectAll();
myDoc.setInstanceAlpha(myEffect.alpha);
myDoc.exitEditMode();
myTimeline = myDoc.getTimeline();
myTimeline.currentFrame = theFrame;
}
function removeEffect(){
var myDoc = fl.getDocumentDOM();
myDoc.enterEditMode();
var myTimeline = myDoc.getTimeline();
var totalFrames = myTimeline.layers[0].frameCount;
myTimeline.removeFrames(1, totalFrames);
myTimeline.setFrameProperty('tweenType', 'none', 0);
myTimeline.currentFrame = 0;
myDoc.selectAll();
myDoc.exitEditMode();
myTimeline = myDoc.getTimeline();
var selFrames = myTimeline.getSelectedFrames();
myTimeline.removeFrames(selFrames[1]+1, selFrames[2]);
myTimeline.setSelectedFrames(selFrames[1], selFrames[1]);
}



Bu dosyayı solma.jsfl adı ile kaydedelim. solma.xml ve jsfl dosyasını C:\Program Files\Macromedia\Flash 8\en\First Run\Effects klasörü içine yapıştıralım. Flash programını kapatıp açalım ve ilk örnekteki gibi sahneye bir çizim yapalım. Bu çizimi seçip anamenüden Insert-->Timeline Effects yolu ile solma efektine ulaşabilirsiniz:



Mesaj29.09.2008, 15:53 (UTC)    
Mesaj konusu:

Flash & XML Entegrasyonu

XML 101

Jesse Stratford tarafından http://www.actionscript.org/ adlı sitede yayınlanan tutorial'dan yararlanılmıştır.

Anlatmaya başlamadan şunu söyleyeyim ki XML odukça geniş bir konudur. Ben bu tutorial'da sizi bu okyanusta boğmadan sadece çok kısıtlı bir konuyu yani flash ile XML arasında nasıl bir köprü kurulur onu anlatacağım.

Bu tutorial'ımın seviyesini “intermediate” olarak belirledim dolayısı ile okuyucuların belirli bir Flash ve A.S. bilgisine sahip olduklarını varsayıyorum. Biraz usun bir tutorial ama harcadığınız zamana değecek bir tutorial olacak.

Bu XML de ne ki?

Şu kadarını söyleyeyim..kesinlikle atla deve değil. Eğer A.S.'yi kıvırdıysanız, XML size çocuk oyuncağı gibi gelecektir. İşin jargonundan başlayalım. XML, eXtensible Markup Language kelimelerinin kısaltmasıdır ve bu dilin temel amacı verinin yapılandırılması, ve organize edilmesidir. XML'in en önemli özelliklerinden bir tanesi kendine göre bilgiyi yapılandırması ve bu bilgilerin insanlar tarafından kolaylıkla okunabilmesidir.

İşe bildiğinizi varsaydığım HTML ile başlayacağım. Alın size HTML dilinden basit bir örnek:

Kod:
<b>Kalun kaçmasın haaa!</b>


HTML dilinde başta ve sonra kullandığımız tagler, içlerindeki stringleri nasıl format ile sunacağını söylerler. XML dilinde de bunu andıran bir yapı vardır. XML'de veriler için başta ve sonda birer tag kullanır ama HTML'den farklı olarak bunu verinin formatını belirlemek için değil veriyi yapılandırmak ve sınıflamak için kullanılır. Gruplandırılmış her bir bilgi parçasına “node” adı verilir. Hemen bir örnek verelim:

Kod:
<yazar_adi>William Gibson</yazar_adi>


Yukarıdaki örnekte “yazar_adi” adlı bir node tanımlandı ve içine “William Gibson” string değeri yerleştirildi. Tabi hayat ve elimizdeki veriler bu kadar basit değil. Elimizdeki karışık yapıdaki veriler için XML hiyerarşik bir yapıya sahiptir. Tıpkı A.S.'de olduğu gibi burada da bir tane _root node ve bu rotu takip eden childnode'lar vardır. Elimizdeki örneği biraz daha geliştirelim ve XML ile bir kitap girişi yapalım.

Kod:
<kitap>
<kitap_adı>Neuromancer</ kitap_adı>
<yazar_adi>William Gibson</yazar_adi>
<kitap_kodu>SF012-32</ kitap_kodu>
</kitap>


İlk önce bir kitap nodu açtık. Bu node içine üç ayrı childnode açtık ve her bir childnode'a ayrı ayrı string değerler yükledik.

Alıntı:
Bu arada şunu hemen belirteyim HTML'in aksine XML dili kesinlikle yazım hatasını affetmez. Mesela HTML ile <b>Kalun kaçmasın haaa!</B> yazdığınızda herhangi bir hata ile karşılamasanız. Ancak XML key-sensitive bir dildir ve açtığınız tagi aynen kapatmanız gerekmektedir. Bununla birlikte içi içe geçmiş bir node yapısına sahip iseniz, en son açtığınız tagi ilk önce kapatmalısınız. Yani <kitap><kitap_adi></kitap_adi></kitap> şeklinde bir hiyerarşi olmalıdır. Tutup da Yani <kitap><kitap_adi></kitap></kitap_adi> derseniz, ki HTML buna da ses çıkarmaz, patlarsınız sonra on saat nerde yanlışım var diye çıldırırsınız. Benden söylemesi!!


Nerde ve niçin XML kullanmalıyım?

Size karşı dürüst olacağım: Ben de tam olarak bunun cevabını bilmiyorum. Şöyle cevap verelim mi: Microsoft buna el attığına göre ve B2B ve B2C ortamlarında XML standart haline geldiğine göre ögrenmekte yarar var. Hehe.

Şu bir gerçek ki XML veritabanı olarak kullanıldığında PHP ve ASP kadar hızlı bir dil değil ve MB'lık veritabanınızı XML ortamında tutmak ve bunu işlemeye kalmak hiçde akıllı bir hareket değil. Çünkü XML client-based bir dil yani işleyeceği tüm XML dosyasını hart diye bilgisayarınıza yüklüyor ondan sonra veriyi işleyeme başlıyor. Her halde bir banka olansız, tüm tüm veri bankanızı 14 yaşındaki bir veledin bilgisayarında görmek istemezsiniz. Demek ki XML secure bir dil de değil.

O zaman niye bu tutorial ile vakit olduruyorsunuz? Ne demiştik? XML değişik platformlar arasındaki iletişim sağlamak için kurulmuş bir dildir. Bu şu demek arkadaşlar..Flash programınız ile Amazon.com'un Oracla database'ini konuşturabilir yahut Flash içinden Google motoruna arama emri yolabilirsiniz. Yetmedi mi? Anlık borsa, hava, döviz, rezervasyon bilgilerini flash ekranınıza çağırabilirsiniz. Hem de bilgiyi istediğiniz ortamın ne olduğunu umursamadan…Ha bu arada ufak veritabanı uygulamalarını da PHP ya da ASP'ye bulaşmadan, ki PHP de çok basit bir uygulama ögrenile tez vakit, aradan XML ile çıkartabilirsiniz.

Flash'a XML Yüklemek

Flash'ları açıp ve ilk XML verimizi yükleyelim mi? İlk olarak yükleyecek bir XML dosyası yaratalım. Bunun için notepad programı yeterli olacaktır. Şimdi notepad'a aşağıdaki sadece tek bir node içeren XML bilgisini girin.

Kod:
<kitap_adı>Neuromancer</ kitap_adı>


Bunu author.xml olarak kaydedin. Dikkat notepad'in default save formatı .txt'dir. Dosyanız her an author.xml.txt olarak kaydolabilir. Unutmadan flash dosyasını da xml dosyasını kaydettiğiniz yerde açın. Aksi taktirde flash xml dosyasını bulmakta problem yaşayabilir.

Kod:
myTutorial_xml=new XML();


Alıntı:
Bilerek veri ismini uzattım ve sonunda _xml ibaresi ekledim. Flash, xml ibaresini gördüğü anda bunun bir xml objesi olduğunu var sayar ve bir dropdown liste ile xml objesi ile yapılabilecek aksiyon ve metotların bir listesini çıkartır.



Flash MX versiyonu ile XML kendine has, ayrı bir obje haline geldi. Yukarıdaki a.s. kodu ile işte bir bir xml objesi yarattık. Şimdi yaratılan bu objenin içine önceden notepad ile yarattığımız objeyi depolayacağız.

Kod:
myTutorial_xml.load(“author.xml”);


Herhangi bir adresleme yapmadan direk dosya ismini verdim çünkü xml ve flash dosyasını aynı yere kaydetmiştik.

A.S.'nin guzel taraflarından bir tanesinde kodlamaya getirdiği onLoad güzelliğidir. Sürekli olarak verilerim Bu event ile verilerimizin sürekli olarak yüklenip yüklenmediklerini kontrol etmekten mecburiyetinde bırakmaz.

Kod:
myTutorial_xml.onLoad = function (success) {
   if (success) {
   trace('Author.xml loaded. Contents are: '+this.toString());
   }
};


Yukarıdaki kod, XML dosyamız yüklendiği zaman tetiklenir ve onLoad event'ine has bir fonksiyon devreye girer ve yüklemenin sonucuna göre success değeri 1 ya da 0 değeri alır. Yükleme başarı ile gerçekleştiyse, success=true değerini alır ve trace satırı devreye girer. Eğer sizde de her şey yolunda gittiyse output ekranınızda aşağıdaki ibare yer almalıdır:

Kod:
Author.xml loaded. Contents are: <author>William Gibson</author>


Alıntı:
Bir not daha; onLoad fonksiyonunun XML objesini tanıttıktan sonra ve yükleme komutu vermeden önce koymak adettendir ve en doğru uygulamadır.


Sırada xml dosyasını karmaşık bir yapıda kurmak var. Buna geçmeden önce önemli bir bilgi vermek istiyorum. Yukarıda verdiğim karmaşık xml dosyasındaki kolay okunabilirliği sağlamak için yapılmış formatlama bir bakın. Bilgisayarlar bu biçimlendirmeye ihtiyaç duymaz, bu tamamen sizlerin veriyi kolayca okuyabilmeniz için yapılmıştır. Dolayısı biçimlendirme için kullanılan space, enter, tab, vb. gibi karakterler bilgisayarların kafasını karşıtırır. Bunu basitçe önlemek için flash'ın getirdiği ignoreWhite özelliğini kullanacağız.

Kod:
myTutorial_xml.ignoreWhite=true;


Böylece kodumuzun en son hali aşağıdaki gibi olacaktır:

Kod:
myTutorial_xml=new XML();
myTutorial_xml.ignoreWhite=true;
myTutorial_xml.onLoad = function (success) {
        if (success) {
                trace('Author.xml loaded. Contents are: '+this.toString());
        }
};
myTutorial_xml.load(“author.xml”);
Mesaj29.09.2008, 15:59 (UTC)    
Mesaj konusu:

Mesaj29.09.2008, 16:40 (UTC)    
Mesaj konusu:

Flash CS3 Yenilikleri: 9-Slice Scale




Flash CS3 teki en güzel özelliklerden birisi de 9-Slice Scale özelliğidir. Bu özellik sayesinde webde sıkça kullandığımız sabit boyutta olmayan nesneler yaratmamız oldukça kolay.

9-Slice Scale özelliğini aktif hale getirmek için Convert to Symbol penceresinin ek özelliklerinde en alttaki seçeneği aktif hale getirmeniz yeterli...

Mesaj29.09.2008, 16:41 (UTC)    
Mesaj konusu:

Flash CS3 Yenilikleri: Create Shape Tween




Flash CS3 sürümünde ilk göze çarpan yenilik: Timeline üzerinden shape tween oluşturabiliyor olmak diyebiliriz.

Shape Tween, Motion Tween kadar çok kullanılmadığı için önceki versiyonlarda buna gerek duyulmamıştı. Ancak sanırım burada neden Shape Tween de yok soruları yeni versiyonda ekleme gereği oluşturdu...
Mesaj29.09.2008, 23:15 (UTC)    
Mesaj konusu: teşekkürler

paylaşımiçin teşeküreler
Mesaj30.09.2008, 04:42 (UTC)    
Mesaj konusu:

Mesaj30.09.2008, 07:30 (UTC)    
Mesaj konusu:

Daha Devam Edicek . Razz
Önceki mesajları göster:   


Powered by phpBB © 2001, 2005 phpBB Group
Türkçe Çeviri: phpBB Türkiye & Erdem Çorapçıoğlu