Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Paulo Mardson

onload() , como acessar as propriedades do arquivo externo (AS2)

Recommended Posts

Galera, eu tenho uma dúvida, é o seguinte estou fazendo um simulador de ladrilhos onde o cliente pode colorir as peças e tal, o meu problema esta em colorir a peça, o meu minhas funções(AS2) ficam no swf principal onde são exibidos os swf's externos. Quando chamo as peças tudo ok, mas não consigo aplicar as cores. As peças estão apenas instanciadas e os comandos delas ficam no SWF principal. espero que der p/ ter entendido. Vlw!

 

Exemplo:

SWF Pai:

/*
========================================================================
HIDROCOR
========================================================================
*/
function colorir(mc, cor){
       if(cor == ""){cor = 0xFFFFFF;}else{cor;}
       color = new Color(mc);
       color.setRGB(cor);
       delete color;
}
/*
========================================================================
AQUARELA
========================================================================
*/
cor0.onRelease = function(){
       cor = 0x009900;
}
/*
========================================================================
CAMADAS PADRÕES DAS PEÇAS
========================================================================
*/
centrais.camada1.onRelease = function(){ // CENTRAIS É ONDE SÃO EXIBIDOS OS SWF'S EXTERNOS, E CAMADA É A INSTANCIA DOS ELEMENTOS QUE COMPÕEM A PEÇA.
       colorir(this, cor);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá @Paulo Mardson,

 

No seu caso, o problema é que da forma que foi declarada, a função "colorir" só funcionará no filme principal (_root = _level0);

Para que ela possa ser utilizada em outros níveis, declare assim:

_root.colorir = function(mc, cor) {
...
}

E para utilizá-la:

_root.colorir(this, cor);

 

Quanto a dúvida do outro tópico (bordas), não sei exatamente o que sugerir já que não conheço o projeto com mais detalhes, mas por alto e se as peças possuirem formas quadradas ou retangulares, pode por exemplo criar um objeto secundário por baixo do principal (dinâmico), mas este com um tamanho *maior e cor sólida (simular a borda do elemento principal).

*diferença de tamanho deste para o prinicpal exatamente do tamanho da borda que deseja simular.

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é são formas curvas, sem padrões específicos. Estou com esse outro problema:

 

var i = 1;
for(i; i<=28; i++){
trace("botão nº: "+i+" foi clicado!");
}
ladrilhosMini.miniCentrais.ct1.onRelease = function(){
selectPeca("CT-001", "CT", "1", "CT-001")
}

 

que add aos "ct1" que seria loop "ct" sem ter que repetir o comando abaixo 28x ou mais:

ladrilhosMini.miniCentrais.ct1.onRelease = function(){
selectPeca("CT-001", "CT", "1", "CT-001")
}

 

como faço isso, porque deste jeito aqui não funciona:

var i   = 1;
var qta = 28
for(i; i<=qta; i++){
       ladrilhosMini.miniCentrais.ct[i].onRelease = function(){
        selectPeca("CT-00"+i, "CT", i, "CT-00"+i);
       }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim:

for(i; i<=qta; i++){
       ladrilhosMini.miniCentrais.ct[i].onRelease = function(){
               selectPeca("CT-00"+i+", CT, " +i+", CT-00"+i);
       }
}

 

Att.

 

mas o meu problema esta nesta linha:

ladrilhosMini.miniCentrais.ct[i].onRelease = function(){

mas precisamente:

ct[i]

 

eu tenho 28 MC's instanciados com ct1, ct2, ct3...ct28.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala aí cara, eu estava com um problema assim, eu queria duplicar um MovieClip várias vezes e arrasta-los, minha dúvida não é igual a sua mas acho que pode ser aproveitado alguma coisa, acessa meu post e dê uma olhada.

 

 

Espero que te ajude.

 

Até!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Fernando_Almeida é eu não sei como posso aproveitar o seu cód. eu não manjo nada de AS2. Mas eu não sabia desta função duplicateMovieClip() que pode ser útil para o meu objetivo. Mas se alguém tiver alguma solução por favor pode postar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Detalhe melhor o seu projeto.

Como essas mais de 28 peças serão inseridas no palco, manual ou dinamicamente;

Há espaçamento padrão entre elas (vert/horiz) ou serão dispostas aleatoriamente;

Cada qual tera uma ação específica, se sim qual;

Entre outras informações que possam ajudar a esclarecer a sua dúdvida que inicialmente era de utilizar no swf carregado, uma função declarada no filme principal.

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, tenho 28 MC's que puxam elas via loadMovie(), eu queria dinamizar isso, queria criar uma coluna com duas fileiras dinamicamente, e colocar ações nesses swf's externos. Mas não tenho ideia

de como fazer isso.

 

Uma outra dúviada é a seguinte, estou com esse cód. aqui que gera um bitmap:

import flash.display.BitmapData;
function output() {
snap = new BitmapData(preview._width, preview._height);
snap.draw(preview);
var pixels:Array = new Array();
var w:Number = snap.width;
var h:Number = snap.height;
for (var a = 0; a<=w; a++) {
	for (var b = 0; b<=h; b++) {
		var tmp = snap.getPixel(a, B).toString(16);
		pixels.push(tmp);
	}
}
var output:LoadVars = new LoadVars();
output.img 		= pixels.toString();
output.height 	= h;
output.width 	= w;

/*ENVIO PARA E-MAIL*/
output.formNome 	= nome.text;
output.formEmail	= email.text;
output.formTelefone	= telefone.text;
output.formMetragem	= metragem.text;
output.formCentralCod	= centralCod.text;
output.formFaixaCod	= faixaCod.text;
output.send("show.php", "", "POST");
}

 

Só que esse cód. esta redirecionando p/ a página "show.php", e outro método não roda o script. tentei o sendAndLoad(), loadVariables()mas não funciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se estes objetos a serem carregados possuirem o mesmo tamanho, simplifica bastante.

Basicamente utiliar o laço de repetição para carregá-los e a cada laço, posicionar o próximo objeto a uma distência (_x) do atual, para definir a quantidade de colunas, terá que criar um contador neste laço, quando atingir o valor máximo definido, cria uma nova linha agora acrescentando a distância (_y). Para inserir ações nos objetos, terá que criar um outro objeto sobre cada (pode ser um MovieClip vazio para agregar as funções, uma vez que diretamente nos obejtos carregados não irá funcionar), essa rotina também agregada ao laço de repetição.

Não sei se ainda existe, mas no portal Imasters (seção Flash) tinha um tutorial de galeria de imagens (com xml) em linhas/colunas e ainda com paginação. Se até aqui eu entendi o que está querendo, esse tuto será muito útil para você.

 

Quanto a outra dúvida, o que gostaria exatamente? Exportar e enviar por e-mail uma imagem gerada pelo Flash? Se for isso, utilize a pesquisa que tem alguns tópicos que tratam deste assunto, e talvez até tutoriais na respectiva seção.

 

No mais, estamos aí.

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.