Paket | Üst Düzey |
Sınıf | public final class Function |
Miras Alma | Function Object |
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Bir sınıfın yöntemleri Function nesnelerinden biraz daha farklıdır. Normal bir işlev nesnesinden farklı olarak bir yöntem, ilişkili sınıf nesnesine sıkıca bağlıdır. Bu nedenle, bir yöntem veya özelliğin, aynı sınıftan tüm örnekler arasında paylaşılan bir tanımı vardır. Yöntemler bir örnekten dışa aktarılabilir ve "bound" yöntemleri(orijinal örneğin bağını tutan) olarak değerlendirilebilir. bound yöntemi için this
anahtar kelimesi, yöntemde uygulanan orijinal nesneyi işaret eder. İşlev için this
anahtar kelimesi, işlevin çağrıldığı zamanda ilişkili nesneyi işaret eder.
Yöntem | Tanımlayan: | ||
---|---|---|---|
ActionScript'in çağırdığı herhangi bir işlev içinde kullanılacak thisObject değerini belirtir. | Function | ||
Bir Function nesnesiyle temsil edilen işlevi çağırır. | Function | ||
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 | ||
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 |
apply | () | yöntem |
AS3 function apply(thisArg:*, argArray:*):*
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9, Flash Lite 4 |
ActionScript'in çağırdığı herhangi bir işlev içinde kullanılacak thisObject
değerini belirtir. Bu yöntem, çağrılan herhangi bir işleve iletilen parametreleri de belirtir. apply()
, Function sınıfının bir yöntemi olduğundan, ActionScript'teki her Function nesnesinin de bir yöntemidir.
Parametreleri virgülle sınırlanmış liste olarak belirten Function.call()
öğesinden farklı olarak, parametreler bir Array nesnesi olarak belirtilir. Bu genellikle, komut dosyası gerçekten çalıştırılıncaya kadar iletilecek parametrelerin sayısı bilinmediğinde kullanışlıdır.
Çağrılan işlevin dönüş değeri olarak belirttiği değeri döndürür.
Parametreler
thisArg:* (default = NaN ) — İşlevin uygulandığı nesne.
| |
argArray:* (default = NaN ) — Öğeleri parametre olarak işleve iletilen bir dizi.
|
* — Çağrılan işlevin belirttiği herhangi bir değer.
|
İlgili API Öğeleri
call | () | yöntem |
AS3 function call(thisArg:*, ... args):*
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Bir Function nesnesiyle temsil edilen işlevi çağırır. ActionScript'teki her işlev bir Function nesnesiyle temsil edilir, böylece tüm işlevler bu yöntemi destekler.
Neredeyse tüm durumlarda, bu yöntem yerine işlev çağrısı (()
) operatörü kullanılabilir. İşlev çağrısı operatörü, kısa ve okunabilir kod üretir. Çağrı işlevinin thisObject
parametresinin açıkça denetlenmesi gerektiğinde bu yöntem birincil olarak kullanışlıdır. Normalde işlev gövdesinin içinde bir nesne yöntemi olarak bir işlev çağrılırsa, şu örnekte gösterildiği gibi thisObject
myObject
olarak ayarlanır:
myObject.myMethod(1, 2, 3);
Bazı durumlarda thisObject
öğesinin başka bir yeri işaret etmesini isteyebilirsiniz; örneğin bir işlevin, bir nesne yöntemi olarak çağrılması gerektiğinde ancak işlev o nesnenin bir yöntemi olarak gerçekten saklanmadığında:
myObject.myMethod.call(myOtherObject, 1, 2, 3);
Bir işlevi nesne yöntemi olarak değil de normal bir işlev olarak çağırmak üzere thisObject
parametresi için null
değerini iletebilirsiniz. Örneğin, şu işlev çağrıları eşdeğerdir:
Math.sin(Math.PI / 4) Math.sin.call(null, Math.PI / 4)
Çağrılan işlevin dönüş değeri olarak belirttiği değeri döndürür.
Parametreler
thisArg:* (default = NaN ) — İşlev gövdesinde thisObject değerini belirten bir nesne.
| |
... args — İşleve iletilecek parametre veya parametreler. Sıfır veya daha fazla parametre belirtebilirsiniz.
|
* |
İlgili API Öğeleri
FunctionExample
, SimpleCollection
, EventBroadcaster
ve EventListener
sınıflarını kullanır. Bu işlem, aşağıdaki adımlar uygulanarak gerçekleştirilir:
FunctionExample
yapıcısı,1
-8
arasında değişebilen bir tam sayı dizisiyle doldurulmuş,simpleColl
adı verilen yerel bir değişken oluşturur.simpleColl
nesnesi,trace()
kullanılarak yazdırılır.- Bir
listener
EventListener nesnesisimpleColl
öğesine eklenir. insert()
veremove()
işlevleri çağrıldığında dinleyici, olaylarına yanıt verir.greaterThanFourColl
adında ikinci bir SimpleCollection nesnesi oluşturulur.greaterThanFourColl
nesnesine,4
argümanı ve anonim bir işlev içerensimpleColl.select()
sonucu atanır. SimpleCollection nesnesinin select yöntemi, blok olarak anonim işlev parametresini kullanan dahili bir adımlayıcıdır.
package { import flash.display.Sprite; public class FunctionExample extends Sprite { public function FunctionExample() { var simpleColl:SimpleCollection; simpleColl = new SimpleCollection(0, 1, 2, 3, 4, 5, 6, 7, 8); trace(simpleColl); // 0, 1, 2, 3, 4, 5, 6, 7, 8 var listener:EventListener = new EventListener(); simpleColl.addListener(listener); simpleColl.insert(9); // itemInsertedHandler: 9 simpleColl.remove(8); // itemRemovedHandler: 8 trace(simpleColl); // 0, 1, 2, 3, 4, 5, 6, 7, 9 var greaterThanFourColl:SimpleCollection; greaterThanFourColl = simpleColl.select(4, function(item:int, value:int){ return item > value }); trace(greaterThanFourColl); // 5, 6, 7, 9 } } } import flash.display.Sprite; class EventBroadcaster { private var listeners:Array; public function EventBroadcaster() { listeners = new Array(); } public function addListener(obj:Object):void { removeListener(obj); listeners.push(obj); } public function removeListener(obj:Object):void { for(var i:uint = 0; i < listeners.length; i++) { if(listeners[i] == obj) { listeners.splice(i, 1); } } } public function broadcastEvent(evnt:String, ...args):void { for(var i:uint = 0; i < listeners.length; i++) { listeners[i][evnt].apply(listeners[i], args); } } } class SimpleCollection extends EventBroadcaster { private var arr:Array; public function SimpleCollection(... args) { arr = (args.length == 1 && !isNaN(args[0])) ? new Array(args[0]) : args; } public function insert(obj:Object):void { remove(obj); arr.push(obj); broadcastEvent("itemInsertedHandler", obj); } public function remove(obj:Object):void { for(var i:uint = 0; i < arr.length; i++) { if(arr[i] == obj) { var obj:Object = arr.splice(i, 1)[0]; broadcastEvent("itemRemovedHandler", obj); } } } public function select(val:int, fn:Function):SimpleCollection { var col:SimpleCollection = new SimpleCollection(); for(var i:uint = 0; i < arr.length; i++) { if(fn.call(this, arr[i], val)) { col.insert(arr[i]); } } return col; } public function toString():String { var str:String = new String(); for(var i:uint = 0; i < arr.length - 1; i++) { str += arr[i] + ", "; } str += arr[arr.length - 1]; return str; } } class EventListener { public function EventListener() { } public function itemInsertedHandler(obj:Object):void { trace("itemInsertedHandler: " + obj); } public function itemRemovedHandler(obj:Object):void { trace("itemRemovedHandler: " + obj); } }
Tue Jun 12 2018, 01:09 PM Z