FLEX ve JS

4 Ekim 2008

FLEX ve JS 5

Buradaki açıklamalar http://www.tutorialized.com/tutorials/Adobe-Flex/1 adresindedir

Şimdi initApp actionscript işlevi yazalabilir. Bu işlev ExternalInterface var mı araştırır. Sonra bir actionscript işlevine çağırı oluşturur. Bu işlevin adı "addPerson" olur (addCallBack için ilk parametredir) ve iç işlevlerden "addPerson" işlevine bağlanmıştır. initApp aşağıdaki kodlama gibidir:

Kodlama:
public function addPerson(name:String, age:String,

  sex:String):void

{

  (dgPeople.dataProvider as ArrayCollection).addItem(

      {Name: name, Age: age, Sex: sex});

}
Artık hem mxml ve actionscript yazılı olduğundan işlemin hml ve javascript tarafındaki kodlamaya bakılmalıdır. Yazılacak javascript kodu html giriş alanlarındaki verileri alıp flex işlevine gönderir. Flex işlevi çağırmak için adı getFlexApp('FlexJSAntalim') olan bir işlev kullanılır. Böylece javascript biçimine aşağıdakini eklenir:

Kodlama:
function addPerson()

{

  var name = document.getElementById('txtName').value;

  var age = document.getElementById('txtAge').value;

  var sex = document.getElementById('selSex').value;

  getFlexApp('FlexJSAnlatim').addPerson(name, age, sex);

}
Artık getFlexApp işlevi önem yazanmış olur. Bu işlev gerçekte Flex uygulmasına geçişi sağlar. Daha önce gömülmüş (embeded) işlev kullanılıyordu ama Adobe sitesinde daha başka bir çözüm önerilmiştir. Bu işlev için birçok tarayıcıyı dikkate alıinır. Burada en önemli şey "object" ya da "embed" içindeki film için tanıtım kodu (id) ve ad (name) belirtilmiş olmasıdır. O zaman aşağıdaki kodlama javascript biçimi içine eklenir.

Kodlama:
// This function returns the appropriate reference, 

// depending on the browser.

function getFlexApp(appName) {

  if (navigator.appName.indexOf ("Microsoft") !=-1) {

    return window[appName];

  } else {

    return document[appName];

}