Pacote | Nível superior |
Classe | public final class Function |
Herança | Function Object |
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Métodos de uma classe são um pouco diferentes que objetos Function. Ao contrário de um objeto Function comum, um método está bem vinculado ao seu objeto de classe associado. Portanto, um método ou uma propriedade tem uma definição compartilhada entre todas as ocorrências da mesma classe. Métodos podem ser extraídos de uma ocorrência e tratados como métodos "vinculados" (mantendo o vínculo com a ocorrência original). Para um membro vinculado, a palavra-chave this
aponta para o objeto original que implementou o método. Para uma função, this
aponta para o objeto associado no momento em que a função é chamada.
Método | Definido por | ||
---|---|---|---|
Especifica o valor de thisObject a ser usado em qualquer função chamada pelo ActionScript. | Function | ||
Chama a função representada por um objeto Function. | Function | ||
Indica se um objeto tem uma propriedade especificada definida. | Object | ||
Indica se uma ocorrência da classe Object está na cadeia de protótipos do objeto especificado como o parâmetro. | Object | ||
Indica se a propriedade especificada existe e é enumerável. | Object | ||
Define a disponibilidade de uma propriedade dinâmica para operações de repetição. | Object | ||
Retorna a representação da string deste objeto, formatado segundo as convenções específicas para a localidade. | Object | ||
Retorna a representação de string do objeto especificado. | Object | ||
Retorna o valor primitivo do objeto especificado. | Object |
apply | () | método |
AS3 function apply(thisArg:*, argArray:*):*
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Especifica o valor de thisObject
a ser usado em qualquer função chamada pelo ActionScript. Esse método também especifica os parâmetros a serem transmitidos a qualquer função chamada. Como apply()
é um método da classe Function, ele também é um método de qualquer objeto Function no ActionScript.
Os parâmetros são especificados como um objeto Array, ao contrário de Function.call()
, que especifica parâmetros como uma lista delimitada por vírgulas. Isso costuma ser útil quando o número de parâmetros a serem transmitidos não é conhecido até que o script seja executado de fato.
Retorna o valor especificado pela função chamada como o valor de retorno.
Parâmetros
thisArg:* (default = NaN ) — O objeto ao qual a função é aplicada.
| |
argArray:* (default = NaN ) — Uma matriz cujos elementos são transmitidos à função como parâmetros.
|
* — Qualquer valor especificado pela função chamada.
|
Elementos da API relacionados
call | () | método |
AS3 function call(thisArg:*, ... args):*
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Chama a função representada por um objeto Function. Cada função no ActionScript é representada por um objeto Function e, portanto, todas as funções oferecem suporte a esse método.
Em quase todos os casos, o operador de chamada de função (()
) pode ser usado no lugar desse método. Esse operador de chamada de função gera um código que é conciso e legível. Esse método é útil principalmente quando o parâmetro thisObject
da chamada da função precisa ser explicitamente controlado. Em geral, se uma função for chamada como um método de um objeto no corpo da função, thisObject
será definido como myObject
, como mostra o exemplo a seguir:
myObject.myMethod(1, 2, 3);
Em algumas situações, convém que thisObject
aponte para outro local; por exemplo, se uma função precisar ser chamada como método de um objeto, mas não estiver realmente armazenada como método desse objeto:
myObject.myMethod.call(myOtherObject, 1, 2, 3);
Você pode transmitir o valor null
para o parâmetro thisObject
de modo a chamar uma função como função regular e não como método de um objeto. Por exemplo, as seguintes chamadas de função são equivalentes:
Math.sin(Math.PI / 4) Math.sin.call(null, Math.PI / 4)
Retorna o valor especificado pela função chamada como o valor de retorno.
Parâmetros
thisArg:* (default = NaN ) — Um objeto que especifica o valor de thisObject dentro do corpo da função.
| |
... args — O parâmetro ou os parâmetros a serem despachados para a função. Você pode especificar zero ou mais parâmetros.
|
* |
Elementos da API relacionados
FunctionExample
, SimpleCollection
, EventBroadcaster
e EventListener
para mostrar os vários usos de funções no ActionScript. Isso é realizado com as seguintes etapas:
- O construtor para
FunctionExample
cria uma variável local denominadasimpleColl
, que é preenchida com uma matriz de inteiros, variando de1
a8
. - O objeto
simpleColl
é impresso com o uso detrace()
. - Um objeto EventListener,
listener
, é adicionado asimpleColl
. - Quando as funções
insert()
eremove()
são chamadas, o ouvinte responde aos seus eventos. - É criado um segundo SimpleCollection com o nome
greaterThanFourColl
. - O objeto
greaterThanFourColl
recebe o resultado desimpleColl.select()
com o argumento4
e uma função anônima. O método de seleção do objeto SimpleCollection é um iterador interno que usa o parâmetro de função anônima como um bloco.
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); } }
Wed Jun 13 2018, 11:10 AM Z