rafinhaphp 0 Denunciar post Postado Março 2, 2009 salve galera.. to tentando duplicar um movieClip com um for.... mas nun acontec nada. nun da erro, nun da nada... óia ai!: for(var valor = 1; valor <= 4; valor++){ duplicateMovieClip(MC,newname="MC" + valor,valor); setProperty("MC" + valor,_x, "MC" + valor._x + "MC" + valor._xscale + 40); } Compartilhar este post Link para o post Compartilhar em outros sites
Public2004 79 Denunciar post Postado Março 3, 2009 Tem erro no cód... Tenta assim: for(var valor = 1; valor <= 4; valor++){ duplicateMovieClip(MC, "MC"+valor, valor); setProperty(MC, _x, this["MC"+valor]._x + this["MC"+valor]._xscale + 40); } Ou, simpificando assim: for(i=1;i<4;i++) { mc.duplicateMovieClip("mc"+i, this.getNextHighestDepth(), {_x:mc._x + 140 * i}); } Agora, aquele "_xscale" faz sentido ali, o correto não seria um "_width" ??? Abs. Compartilhar este post Link para o post Compartilhar em outros sites
rafinhaphp 0 Denunciar post Postado Março 3, 2009 intom.... o _xscale é pra fica na posição correta, fiz uma gabiarra ai! rsrsrs mas o _xscale e o _whidth nun tem a masma "função"?? mas vamu la... manin... eu testei o script q você posto... os 2 funiono q é uma maravilha! rsrsrs ma eu tenhu umas duvidas sobra os 2! porq como eu sempre digo, eu ODEEEEIIIO só copiar e cola!!!! você pode me explica os 2? tipo o primeiro eu entendi assim: enquanto(valor é = 1; enquanto valor for menor ou igual a 4; adiciona 1 ao valor){ duplica("MC", novo nome"MC" + valor, o Depth vai ser = o valor) MudaPropriedade("MC", muda a posição _X, aqui eu jah non intendi mais nada porq tem esse this? e porque tem que estar dentro de []? você percebeu q eu gosto de ESCREVER como se entendo o script... e essa parte ai eu não consegui entender oque o script ta "falando", ou ordenando, seila! rs o 2° ENQUANTO(i é = 1; enquanto i for menor que 4; adiciona 1 a i) DUPLICAMC('MC" mais o valor de i, aqui eu não intendi) oque esse getNextHighestDepth() faz? ele pega o depht?? {_x:mc._x + 140 * i}..... aqui eu sei que esta "setando" o valor de _x, mas porq esse 140 * i (vezes né?)???? e porq tem que estar entre {} e não [] ou ()???? desde jah desculpa as perguntas meio sem sentido, mas é que eu sou professor e gosto de saber tudo nos seus MIIIIIIInimos detralhes! rsrsrs Compartilhar este post Link para o post Compartilhar em outros sites
Public2004 79 Denunciar post Postado Março 3, 2009 Deixa ver se consigo clarear as idéias... mas o _xscale e o _whidth nun tem a masma "função"??Não, o "_xscale" ou "_yscale" trabalham com valores em percentuais e o "_width" e o "_height" com valores em pixels. for(var valor = 1; valor <= 4; valor++){ duplicateMovieClip(MC, "MC"+valor, valor); setProperty(MC, _x, this["MC"+valor]._x + this["MC"+valor]._xscale + 40); }Nada mais é do que um laço de repetição (for), ou seja, de acordo com a declaração, vai repetir o bloco de código que é: duplicar o MC e alterar as propriedades de cada, sendo a declaração:var valor = 1 (Valor Inicial); valor <= 4 (Condição); valor++ (Próximo até atingir a condição). duplicateMovieClip = Como o nome já diz, duplica o MovieClip informado (MC), definindo uma nova instância (MC+valor) a cada nova duplicação. E o próximo argumento é o depth, pode informar o valor desejado, ou solicitar que o AS adquira sempre o depth mais alto, utilizando: this.getNextHighestDepth() setProperty = define a propriedade "_x" do MC informado, que é, o valor da posição _"x" atual + a largura do objeto em "_xscale" (100) + 40 E como isto está dentro do laço, vai pegar sempre a posição do último objeto para calcular. for(i=1;i<4;i++) { mc.duplicateMovieClip("mc"+i, this.getNextHighestDepth(), {_x:mc._x + 140 * i}); }No segundo exemplo, é a mesma coisa: Um laço de repetição (for), só que reduzido. Setei a posição "_x" direto, e para o cálculo do posicionamento, pego a posição atual do primeiro mc + 140 * o valor de i, que em cada repetição será alterado para 1, 2, 3, 4...Utilizei o valor de 140, porque calculei os 100% do seu exemplo ("_xscale"), então 100 + 40 = 140 Mas como disse antes, no seu cód, acho que o correto seria "_width", então altere os valores e vai testando. Referências: duplicateMovieClip = http://livedocs.adobe.com/flash/8/main/wwh...e=00002452.html loop for = http://livedocs.adobe.com/flash/8/main/wwh...e=00001872.html setProperty = http://livedocs.adobe.com/flash/8/main/wwh...e=00001767.html Abs e bom estudo. Compartilhar este post Link para o post Compartilhar em outros sites
rafinhaphp 0 Denunciar post Postado Março 3, 2009 pow manin, valew... deu pra clarear bastante! ^^ mas ainda fico um "apagadinho" rsrsrsrsrsrs a duvida é simples.... eu entendi q o this.getNextHighestDepth pega o maior depth certo? ó, pode tar errado, e se tiver me fala aê, mas eu aprendi assim: duplicateMovieClip("alvo", novo nome, depth) e no que tu fez, nun ta assim, issu que me imbabano saks.... no seu ta: ....("alvo", depth, aqui eu nun sei o nome que se da, mas ta mudando a propriedd.rsrs) Compartilhar este post Link para o post Compartilhar em outros sites
Public2004 79 Denunciar post Postado Março 3, 2009 A forma que fez também está correta, só que em alguns casos é preciso declarar a instância do mc a ser duplicado no início da função. Não é caso do meu exemplo, onde apenas simplifiquei o código, definindo o posicionamento do novo mc na declaraçao (esta parte é opcional). Repare o funcionamento idêntico dos 2 cód. abaixo: Ex. 01: mc.duplicateMovieClip("mc_new", this.getNextHighestDepth(), {_x:mc._x+100}) Ex. 02: duplicateMovieClip(mc, "mc_new", this.getNextHighestDepth()) mc_new._x = mc._x + 100; Abs. Compartilhar este post Link para o post Compartilhar em outros sites
rafinhaphp 0 Denunciar post Postado Março 3, 2009 ahhhh ta Manin.. agora intendi... sabe porq.. eu tava axando q o 2° parametro estava dando o novo nome... mas é o primeiro! agora q eu vi... tu coloco assim mc.duplicateMovieClip() e não assim duplicateMovieClip(mc,) então se eu colocar o nome do MC (alvo) a ser duplicado antes do DuplicateMov..... ele jah não vai mais precs dizer o alvo né?, sobrando espaço pra pra definir a posição! INTENDI! :lol: Compartilhar este post Link para o post Compartilhar em outros sites