Paket | flash.system |
Sınıf | public final class WorkerDomain |
Miras Alma | WorkerDomain Object |
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 11.4, AIR 3.4 |
Not: Eşzamanlılık için worker (işçi) öğelerinin kullanılması masaüstü platformlarda hem Flash Player'da hem de AIR'de desteklenir. Mobil platformlarda eşzamanlılık Android'de AIR'de desteklenir ancak iOS'ta AIR'de desteklenmez. Kullanmayı denemeden önce eşzamanlılığın desteklenip desteklenmediğini kontrol etmek için, statik isSupported özelliğini kullanabilirsiniz.
WorkerDomain()
yapıcısını çağırarak doğrudan WorkerDomain örnekleri oluşturmazsınız. Bir uygulama için tek bir WorkerDomain örneği vardır. Eşzamanlılık için worker (işçi) öğelerinin kullanılmasının desteklendiği bağlamlarda çalışma zamanı, başlangıçta otomatik olarak WorkerDomain oluşturur. Statik current
özelliğini kullanarak o örneğe erişirsiniz.
Yeni bir Worker sınıfı örneği oluşturmak için, createWorker()
yöntemine bakın. Şu anda çalışmakta olan Worker nesneleri kümesine erişmek için listWorkers()
yöntemini kullanın.
İlgili API Öğeleri
Özellik | Tanımlayan: | ||
---|---|---|---|
constructor : Object
Belirli bir nesne örneği için sınıf nesnesine veya yapıcı işlevine bir başvuru. | Object | ||
current : WorkerDomain [statik] [salt okunur]
Kodun şu anda çalışmakta olduğu WorkerDomain örneği. | WorkerDomain | ||
isSupported : Boolean [statik] [salt okunur]
Geçerli çalışma zamanı bağlamının eşzamanlı kod yürütme için WorkerDomain ve Worker nesnelerini destekleyip desteklemediğini belirtir. | WorkerDomain |
Yöntem | Tanımlayan: | ||
---|---|---|---|
Bir swf baytlarından yeni bir Worker örneği oluşturur. | WorkerDomain | ||
Bir nesnenin belirli bir özelliğinin tanımlı olup olmadığını gösterir. | Object | ||
Object sınıfının bir örneğinin parametre olarak belirtilen nesnenin prototip zincirinde olup olmadığını gösterir. | Object | ||
Şu anda çalışmakta olan WorkerDomain'deki worker (işçi) kümesine erişilmesini sağlar (Worker (İşçi) örneğinin state özelliği WorkerState.RUNNING'dir). | WorkerDomain | ||
Belirtilen özelliğin bulunup bulunmadığını ve numaralandırılabilir olup olmadığını gösterir. | Object | ||
Dinamik bir özelliğin döngü işlemlerinde kullanılabilirliğini ayarlar. | Object | ||
Bu nesnenin, yerel ayara özel kurallara göre biçimlendirilmiş dize temsilini döndürür. | Object | ||
Belirtilen nesnenin dize olarak temsil edilen halini döndürür. | Object | ||
Belirtilen nesnenin temel değerini döndürür. | Object |
current | özellik |
current:WorkerDomain
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 11.4, AIR 3.4 |
Kodun şu anda çalışmakta olduğu WorkerDomain örneği. Bu, uygulamadaki tek WorkerDomain'dir.
Uygulama
public static function get current():WorkerDomain
isSupported | özellik |
isSupported:Boolean
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 11.4, AIR 3.4 |
Geçerli çalışma zamanı bağlamının eşzamanlı kod yürütme için WorkerDomain ve Worker nesnelerini destekleyip desteklemediğini belirtir.
Eşzamanlılık kullanılabiliyorsa, bu özelliğin değeri true
olur.
Uygulama
public static function get isSupported():Boolean
createWorker | () | yöntem |
public function createWorker(swf:ByteArray, giveAppPrivileges:Boolean = false):Worker
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 11.4, AIR 3.4 |
Bir swf baytlarından yeni bir Worker
örneği oluşturur.
Her worker (işçi), yalıtılmış bir swf uygulamasından oluşturulur ve yalıtılmış bir swf uygulaması olarak yürütülür. Bir Worker örneği oluşturmak için, SWF dosyasının baytlarını ByteArray örneği olarak alır ve bu yönteme iletirsiniz. Bu amaçla bir swf'nin baytlarına erişmenin üç yaygın yolu vardır:
.swf dosyasını bir ByteArray olarak uygulamaya gömmek için [Embed] meta etiketini kullanın:
// Embed the SWF file [Embed(source="../swfs/BgWorker.swf", mimeType="application/octet-stream")] private static var BgWorker_ByteClass:Class; private function createWorker():void { // create the background worker var workerBytes:ByteArray = new BgWorker_ByteClass(); var bgWorker:Worker = WorkerDomain.current.createWorker(workerBytes); // listen for worker state changes to know when the worker is running bgWorker.addEventListener(Event.WORKER_STATE, workerStateHandler); // set up communication between workers using // setSharedProperty(), createMessageChannel(), etc. // ... (not shown) bgWorker.start(); }
Bir URLLoader kullanarak harici bir SWF dosyası yükleyin:
// load the SWF file var workerLoader:URLLoader = new URLLoader(); workerLoader.dataFormat = URLLoaderDataFormat.BINARY; workerLoader.addEventListener(Event.COMPLETE, loadComplete); workerLoader.load(new URLRequest("BgWorker.swf")); private function loadComplete(event:Event):void { // create the background worker var workerBytes:ByteArray = event.target.data as ByteArray; var bgWorker:Worker = WorkerDomain.current.createWorker(workerBytes); // listen for worker state changes to know when the worker is running bgWorker.addEventListener(Event.WORKER_STATE, workerStateHandler); // set up communication between workers using // setSharedProperty(), createMessageChannel(), etc. // ... (not shown) bgWorker.start(); }
İlkel worker (işçi) ve arka plan worker (işçi) olarak tek bir swf kullanın:
// The primordial worker's main class constructor public function PrimordialWorkerClass() { init(); } private function init():void { var swfBytes:ByteArray = this.loaderInfo.bytes; // Check to see if this is the primordial worker if (Worker.current.isPrimordial) { // create a background worker var bgWorker:Worker = WorkerDomain.current.createWorker(swfBytes); // listen for worker state changes to know when the worker is running bgWorker.addEventListener(Event.WORKER_STATE, workerStateHandler); // set up communication between workers using // setSharedProperty(), createMessageChannel(), etc. // ... (not shown) bgWorker.start(); } else // entry point for the background worker { // set up communication between workers using getSharedProperty() // ... (not shown) // start the background work }
createWorker()
kullanılarak bir Worker nesnesi oluşturulması, worker (işçi) yürütmesini başlatmaz. Bir worker (işçi) öğesinin kod yürütmesini başlatmak için, Worker nesnesinin start()
yöntemini çağırın.
Worker nesneleri, ana görüntü oluşturma iş parçacığının diğer kod tarafından engellenmesi nedeniyle kare hızı düşüş olasılığını azalttığı için kullanışlıdır. Ancak worker nesneleri ek sistem belleği ve CPU kullanımı gerektirir ve bu da genel uygulama performansı açısından maliyetli olabilir. Her worker (işçi) kendi çalışma zamanı sanal makine örneğini kullandığından, ufak bir worker (işçi) öğesinin bile ek yükü büyük olabilir. Worker (işçi) öğelerini kullanırken, sistemdeki taleplerin çok büyük olmadığından emin olmak için tüm hedef platformlarınızda kodunuzu test edin. Adobe, tipik bir senaryoda bir veya ikiden fazla arka plan worker (işçi) kullanmamanızı önerir.
Parametreler
swf:ByteArray — Geçerli bir swf baytlarını içeren ByteArray
| |
giveAppPrivileges:Boolean (default = false ) — Worker (işçi) öğesine AIR'de uygulama sanal alanı ayrıcalıklarının verilmesinin gerekli olup olmadığını belirtir. Bu parametre, Flash Player'da yoksayılır
|
Worker — oluşturma başarılı olursa, yeni oluşturulan Worker (İşçi). null döndürülen değeri, geçerli bağlam, eşzamanlılığı desteklemediğinden veya yeni bir worker (işçi) oluşturulması uygulama sınırlarını aşacağından, bir worker (işçi) öğesinin oluşturulamadığını belirtir.
|
Atar
SecurityError — Baytları swf parametresine iletilen swf, bu yöntemin çağrıldığı swf'den farklı bir güvenlik etki alanından geliyorsa
|
listWorkers | () | yöntem |
public function listWorkers():Vector.<Worker>
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 11.4, AIR 3.4 |
Şu anda çalışmakta olan WorkerDomain'deki worker (işçi) kümesine erişilmesini sağlar (Worker örneğinin state
özelliği WorkerState.RUNNING
'dir).
Vector.<Worker> — Şu anda çalışmakta olan worker (işçi) öğelerini içeren bir Worker Vektörü.
|
Tue Jun 12 2018, 01:09 PM Z