JOÃO NETO (78 pts)

DEN IVANOV (260 pts)

RICARDO FIGUEIRA (33 pts)

SASHA GUDEY (235 pts)

MARLOS ALVES CARMO (90 pts)

RICARDO TAKAHASHI (180 pts)

DANIELA PIRES (86 pts)

EDUARDO WALMOTT (226 pts)

GUILHERME G.G. (137 pts)

DENIS CARAVALHO (85 pts)

SÁVIO PONTE (39 pts)

ÉMERSON ROCHA (85 pts)
Treinamento PontoFlash de Flash e ActionScript

Como faço para validar data de nascimento num formulário?

Quero dar 2 loops em um Wav e só depois seguir em frente com a timeline.

Problemas com o caminho do tell target.

Como formatar dízimas periódicas com apenas duas casas decimais?

Como eu faço um relógio digital e com data junto?

Como fazer uma arma móvel atirar um projétil verticalmente?

Gostaria de no mouse over sobre um texto, ele parasse, e no mouse out, prosseguisse de onde parou.

Comentários do o script do “desenho livre” (sources/actionscript)?

Como eu faço um botão igual a do site http://www.ferryhalim.com/orisinal?

Preciso passar alguns parâmetros para o meu movie através do html e não estou conseguindo.

Como criar um exemplo desenho livre, com botão para começar a desenhar e limpar?

Como fazer um efeito Glaussiam Blur no Flash?

Como são feitos os efeitos da névoa no fundo e o efeito aquático do espantalho nesse site? http://www.mypetskeleton.com

Quero clicar num botão, que está no primeiro exe para chamar o 2° .exe e que o primeiro finalize o segundo.
Download de arquivos com a classe File Reference

AttachSound.

Objeto XML - importando para o Flash

Elasticidade com ActionScript.

Create TextField.

Usando XML com Fireworks MX.

Integrando o Flash com Tecnologias Externas.

Degradé com tons metálicos - Fireworks

Janelas tipo Windows com Swap Depth

Detectando funções de browser usando ASP

Tornando movieclips arrastáveis (drag movieclip)

Barra de rolagem simples no Flash5.
Rayoflight

Lineas 3

Maluko

ICQ

Trailer

Mapa - Países com A 2

EnterFrame

Marquee

Slide menu

Texto esticado

Cofre mask

Lightball
HOME | TRUQUES E DICAS
Porque o loop FOR..IN nem sempre gera o mesmo resultado do FOR convencional?
por Jonas Galvez



O loop for...in exibe as propriedades na ordem em que elas foram definidas, sendo que as últimas aparecem primeiro.

obj = {}
obj[1] = null;
obj[2] = null;
obj[3] = null;
for(prop in obj) trace(prop);

O resultado será:

3
2
1

Durante o desenvolvimento do DENG (parser RSS / XHTML / CSS / SVG / XForms / XFrames em Flash), o Claus Wahlers teve um problema parecido. Era preciso usar o loop for...in para obter os nomes das propriedades de um objeto, mas também era necessário realizar este processo em ordem correta. Trabalhei com ele para encontrar uma solução, e acabei criando a seguinte função:

_global.reOrderObject = function(obj) {
    var indices = [], objOld = obj;
    for (var i in objOld) {
        indices.push(i);
    }
    var iLen = indices.sort(function (a, b) { return a-b;}).length;
    for (var j = iLen, objNew = {}; j--; ) {
    objNew[indices[j]] = objOld[indices[j]];
    }
    return objNew;
};
obj = {};
obj[1] = null;
obj[6] = null;
obj[10] = null;
obj[11] = null;
for (prop in obj) {
    trace(prop);
}
obj = reOrderObject(obj);
for (prop in obj) {
    trace(prop);
}

Basicamente, o que esta função faz é redefinir todas as propriedades de um objeto de 1 nível (não é recursiva), para que elas sejam exibidas em ordem num loop for..in.

-----------------------------------------------------------
_global.reOrderObject = function(obj) {
    var indices = [], objOld = obj;
    for(var i in objOld) indices.push(i);
-----------------------------------------------------------

A array indices[] armazenará os nomes de todas as propriedades do objeto. Com isso, podemos aplicar o método sort para ordenar as propriedades corretamente:

-----------------------------------------------------------
    var iLen = indices.sort(
        function(a, b) { return a - b; }
    ).length;
-----------------------------------------------------------

Usei uma função de comparação no sort para garantir que números fossem ordenados corretamente. Após fazer isso, basta redefinir as propriedades em ordem reversa (para que sejam exibidas na ordem correta no for..in):

-----------------------------------------------------------
    for(var j = iLen, objNew = {}; j--;) {
        objNew[indices[j]] = objOld[indices[j]];
    };
    return objNew;
-----------------------------------------------------------

Espero que tenha ficado claro :-)

Jonas Galvez


1 comentário


Comentário de José Luiz Lopes
| 11/1/2010 - 23:07 |


Sou professor de Física e preciso fazer um CD de uma aula que entre, através do autorun, num arquivo A.exe que tem um botão que deve chamar outro arquivo B.exe que por sua vez tem dois botões, um que chama A.exe e outro que chama C.exe. Tentando com o FlashCS3 usei o fscommand exec "arquivo.exe", mas não deu certo. Se você puder me auxiliar agradeceria. Zé Luiz
Um arquivo .exe não abre outro .exe, mas sim um .swf. Basta exportar o arquivo B como SWF.