FLASHGURU (155 pts)

GABRIEL SPORCH (53 pts)

FÁBIO DUARTE (79 pts)

PEDRO CLAUDIO (50 pts)

LUI FERNANDO (151 pts)

ILVA RUDEV (90 pts)

DAUTON JANOTA (255 pts)

MARCELO SIQUEIRA (96 pts)

PANDOGO (82 pts)

LUIZ HERRERA (117 pts)

MARCOS JOSÉ PINTO (44 pts)

AUTOR DESCONHECIDO (100 pts)
Treinamento PontoFlash de Flash e ActionScript

Objeto flutuante e gravidade.

Como faço um olho ficar apontando para o ponteiro sem se deslocar?

Como fazer uma busca de palavras num arquivo do Flash?

Função javascript para voltar há uma página anterior a atual.

Como faço um stop and play no som.

Como classificar um array por um de seus itens?

É possível redimensionar um jpg aberto dinamicamente?

Eu posso colocar um evento rollOver em um campo de texto?

Como posso colocar uma transparência (alpha) em um objeto?

Criei o script para FullScreen e está abre o site em flash, mas o botão fechar criado no flash não funciona.

Como faço para desabilitar as opções que aparecem quando se aperta o botao direito no swf?

Posso abrir uma janela popup de um projetor (executável)?

Como transformar uma animação em um movie clip?

Tem como alinhar objetos em frames diferentes de uma vez só?
Uso da tecla tab num formulário Flash.

Imagens transparentes usando PhotoShop, Fireworks e Flash.

Shared object.

Componente Slideshow

Objeto array - Classificar uma array (sorting) e e arrays multidimensionais

Scroll Text.

Relógio analógico

0wn3d Again BY Destution Team

Labirinto - Plataforma de jogo em terceira pessoa em flash 5: 1° parte

Alterando Artistic Media no Corel Draw.

Desenhando no Flash.

Entendendo como funciona um preloader - Segunda parte
Static

Cronometro

Drag gravity

Sashacircle 1

Menu fmx

Lightball

Trilha

Tocha de fogo

Hipotenusa

Rotatingclockpoint

Clip Over e Out

Loading trail
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.