LocalConnection sınıfı, fscommand() yöntemini veya JavaScript uygulamasını kullanmadan diğer SWF dosyalarına talimatlar gönderebilen SWF dosyaları geliştirmenize olanak sağlar. LocalConnection nesneleri yalnızca aynı istemci bilgisayarında çalışan SWF dosyaları arasında iletişim kurabilir ancak bunlar farklı uygulamalarda çalışabilir. Örneğin, yerel bilgileri barındıran projektör ile tarayıcı tabanlı SWF uzaktan bağlanarak, bir tarayıcıda çalışan SWF dosyası ile bir projektörde çalışan SWF dosyası bilgi paylaşabilir. (Projektör, bağımsız bir uygulama olarak çalışabilecek formatta kaydedilmiş bir SWF dosyasıdır—başka bir deyişle, projektör çalıştırılabilir dosyanın içinde gömülü olduğundan Flash Player uygulamasının yüklenmesini gerektirmez.)
Farklı ActionScript sürümlerini kullanan SWF'ler arasında iletişim kurmak için LocalConnection nesneleri kullanılabilir:
-
ActionScript 3.0 LocalConnection nesneleri, ActionScript 1.0 veya 2.0'da oluşturulmuş LocalConnection nesneleriyle iletişim kurabilir.
-
ActionScript 1.0 veya 2.0 LocalConnection nesneleri, ActionScript 3.0'da oluşturulmuş LocalConnection nesneleriyle iletişim kurabilir.
Flash Player, farklı sürümlerdeki LocalConnection nesneleri arasındaki bu iletişim otomatik olarak işler.
LocalConnection nesnesini kullanmanın en basit yolu, yalnızca aynı etki alanında veya aynı AIR uygulamasında bulunan LocalConnection nesneleri arasındaki iletişime izin vermektir. Böylece, güvenlik meseleleriyle ilgili endişe duymanıza gerek kalmaz. Ancak, etki alanları arasındaki iletişime izin vermeniz gerekiyorsa, güvenlik önlemleri uygulamanın çeşitli yolları vardır. Daha fazla bilgi için,
http://help.adobe.com/tr_TR/FlashPlatform/reference/actionscript/3/flash/net/LocalConnection.html
Adobe Flash Platformu için ActionScript 3.0 Başvurusu
'nda listelenen
LocalConnection
sınıfındaki
allowDomain()
ile
domain
girişleri ve yönteminin connectionName parametresi hakkındaki tartışmaya bakın.
Tek bir SWF dosyası içinde veri alıp vermek için LocalConnection nesneleri kullanılabilir ancak Adobe bunu önermez. Bunun yerine, paylaşılan nesneleri kullanın.
LocalConnection nesnelerinize geri çağrı yöntemleri eklemenin üç yolu vardır:
-
LocalConnection sınıfını alt sınıfa ayırın ve yöntemler ekleyin.
-
LocalConnection.client
özelliğini, yöntemleri uygulayan bir nesneye ayarlayın.
-
LocalConnection öğesini genişleten ve dinamik olarak yöntemler ekleyen bir dinamik sınıf oluşturun.
Geri çağrı yöntemleri eklemenin birinci yolu, LocalConnection sınıfının genişletilmesidir. Yöntemleri LocalConnection örneğine dinamik olarak eklemek yerine, özel sınıf içinde tanımlarsınız. Aşağıdaki kodda bu yaklaşık gösterilmektedir:
package
{
import flash.net.LocalConnection;
public class CustomLocalConnection extends LocalConnection
{
public function CustomLocalConnection(connectionName:String)
{
try
{
connect(connectionName);
}
catch (error:ArgumentError)
{
// server already created/connected
}
}
public function onMethod(timeString:String):void
{
trace("onMethod called at: " + timeString);
}
}
}
CustomLocalConnection sınıfının yeni bir örneğini oluşturmak için, şu kodu kullanabilirsiniz:
var serverLC:CustomLocalConnection;
serverLC = new CustomLocalConnection("serverName");
Geri çağrı yöntemleri eklemenin ikinci yolu,
LocalConnection.client
özelliğinin kullanılmasıdır. Bu işlem kapsamında, aşağıdaki kodun gösterdiği gibi, özel bir sınıf oluşturulur ve
client
özelliğine yeni bir örnek atanır:
var lc:LocalConnection = new LocalConnection();
lc.client = new CustomClient();
LocalConnection.client
özelliği, çağrılması gereken nesne geri çağrı yöntemlerini belirtir. Önceki kodda
client
özelliği, özel sınıfın yeni bir örneğine (CustomClient) ayarlanmıştı.
client
özelliğinin varsayılan değeri, geçerli LocalConnection örneğidir. Aynı yöntem kümesine sahip olan ancak farklı şekilde hareket eden iki veri işleyiciniz varsa (örneğin, bir penceredeki düğmenin ikinci bir penceredeki görünümü değiştirdiği bir uygulamada),
client
özelliğini kullanabilirsiniz.
CustomClient sınıfını oluşturmak için şu kodu kullanabilirsiniz:
package
{
public class CustomClient extends Object
{
public function onMethod(timeString:String):void
{
trace("onMethod called at: " + timeString);
}
}
}
Geri çağrı yöntemleri eklemenin üçüncü yolu olarak dinamik bir sınıf oluşturulması ve yöntemlerin dinamik olarak eklenmesi, aşağıdaki kodun gösterdiği gibi, önceki ActionScript sürümlerinde LocalConnection sınıfının kullanılmasına çok benzer:
import flash.net.LocalConnection;
dynamic class DynamicLocalConnection extends LocalConnection {}
Geri çağrı yöntemleri, aşağıdaki kod kullanılarak bu sınıfa dinamik olarak eklenebilir:
var connection:DynamicLocalConnection = new DynamicLocalConnection();
connection.onMethod = this.onMethod;
// Add your code here.
public function onMethod(timeString:String):void
{
trace("onMethod called at: " + timeString);
}
Kod çok taşınabilir bir öğe olmadığından, geri çağrı yöntemleri eklemenin bir önceki yolu önerilmez. Ayrıca, dinamik özelliklere erişim, mühürlenmiş özelliklere erişimden çok daha yavaş olduğundan, bu yerel bağlantı oluşturma yönteminin kullanılması performansla ilgili sorunlara yol açabilir.
isPerUser özelliği
isPerUser
özelliği Flash Player (10.0.32) ve AIR (1.5.2) uygulamalarına, bir Mac bilgisayarda birden fazla kullanıcı oturum açtığında ortaya çıkan çakışmayı çözmek için eklenmiştir. Diğer işletim sistemlerinde, yerel bağlantı her zaman ayrı kullanıcılarla sınırlı olduğu için bu özellik yok sayılır.
isPerUser
özelliği yeni kodda
true
olarak ayarlanmalıdır. Ancak, varsayılan değer geriye dönük uyumluluk için geçerli olarak
false
şeklindedir. Varsayılan değer, çalışma zamanlarının gelecekteki sürümlerinde değiştirilebilir.