FÁBIO DUARTE (79 pts)
Como criar um campo de texto dinamicamente pelo FlashMX?
Quero que quando terminar a animação de um movieclip, comece outro e assim sucessivamente.
Como importar frases de um TXT e mostrar uma randomicamente?
Como fazer um botão no flash que instale um setup de programa?
Preciso de uma action para retroceder ou reverter uma animação.
Como alterar a cor de um movieclip no mouseOver via actionscript?
Alguém tem um javascript redirecionador de páginas?
Como carregar um swf numa cena ou num frame específico?
Estou precisando de scripts em CGI.
Como eu faço para retornar um número inteiro?
Como fazer um botão comutador do tipo play e stop?
Nikefootball, uso e abuso do flash - Avaliação de sites
Sistema de newsletter utilizando Flash + ASP.
Objeto XML - xml viewer
Primeiros passos - apresentação
GuestBook usando integração Flash e PHP.
Objeto array - Arrays X Objetos
Swap Movieclips
Spectrum Sound Analyzer
Intro animada
Shape tween imagem
Bspline2
Busca texto
Função chamada createFunctionCall, que permite criar uma função para executar uma outra função com certos parâmetros.
por Jonas Galvez
Tentarei fazê-lo entender como a minha função (createFunctionCall) funciona. Bom, primeiramente, vamos dar
mais mais uma olhada nela:
_global.createFunctionCall = function() {
var _obj = arguments.shift();
var _function = arguments.shift();
return function() { _function.apply(_obj, _arguments); };
Linha por linha. Na primeira linha, declaramos a função, anexando-a ao namespace _global. Desta forma, ela estará disponível para todas as timelines e objetos do filme. Na segunda linha, declaramos a variável local _obj com o valor do primeiro parâmetro passado para a função.
Os parâmetros que são passados para uma função podem ser acessados através da coleção arguments. Veja o exemplo abaixo:
function soma() { return arguments[0] + arguments[1]; };
trace(soma(2, 2)); // resultado: 4
O método Array.shift exclui o primeiro elemento do array (índice 0) e o retorna para uma variável. Assim, na segunda linha do script, estamos obtendo o primeiro argumento (parâmetro) que é passado para a função. Na terceira linha, efetuamos o mesmo procedimento para obter o segundo parâmetro que foi passado para a função. Como o primeiro já foi excluído na linha anterior (através do shift), o segundo parâmetro passou a ser o primeiro. Na quarta linha do script, definimos uma referência à coleção arguments, que nesto ponto contém apenas o restante dos parâmetros. Estes parâmetros são os que serão passados para a função que deverá ser executada. Agora já temos as informações que precisamos. Uma referência ao objeto (_obj), uma referência à função (_function).que será executada dentro do objeto e os argumentos (_arguments) que deverão passados para aquela função.
O que nos permite executar a função (_function) dentro do objeto (_obj) especificado é o método Function.apply. Este método tem dois parâmetros. O primeiro parâmetro é o objeto ao qual função deverá ser aplicada, e o segundo é uma array contendo os parâmetros que deverão ser passados para função. Na quinta linha do script, retornamos uma função auxiliar que irá executar nossa função (_function) dentro de um objeto (_obj).
Vejamos um exemplo bastante simples de uso:
// um objeto simples, contendo uma propriedade
// chamada "numero" com o valor 10
var meuObjeto = new Object();
meuObjeto.numero = 10;
// uma função simples, que exibirá o conteúdo
// da propriedade numero
var minhaFuncao = function() {
trace(this.numero);
// ao executar a linha abaixo, o resultado será undefined
minhaFuncao();
Isto acontece por que a função está sendo executada dentro do contexto do _root, e não tem acesso à propriedade "numero" do objeto definido anteriormente. Mas com o seguinte script:
minhaFuncao.apply(meuObjeto);
A função será aplicada ao objeto definido no método apply, e com isso o valor da propriedade número poderá ser acessado. Basicamente, são estes os fatores que fazem minha funçãozinha funcionar. Para aplicá-la ao seu script: