rd111072 1 Denunciar post Postado Outubro 3, 2008 Bom dia, moçada! Estou tentando attachar MCs e referenciá-los para aplicar função. Comecei com o código abaixo: screenWidth = 700; screenHeight = 400; aldeonArray = new Array(); for (i=0; i<20; i++) { attachMovie ("aldeon", "aldeon"+1, 1); aldeonArray[i] = _root["aldeon"+1]; aldeonArray[i]._x = random(screenWidth); aldeonArray[i]._y = random(screenHeight); } aldeon._visible = 100; _root.onEnterFrame = function() { for (i=0; i<20; i++) { if (aldeonArray[i].hitTest(_xmouse, _ymouse, true)) { aldeonArray[i]._alpha = 30; } } }; Ele deve chamar o mc "aldeon" e criar 20 instnâcias dele e depois se hitTest=true, diminuir seu alpha para 30. O problema é que só atacha uma instância. como eu faço para atachar as 20 que preciso? Alguém sabe? Compartilhar este post Link para o post Compartilhar em outros sites
Public2004 79 Denunciar post Postado Outubro 3, 2008 Olá amigo, tente assim: screenWidth = 700; screenHeight = 400; aldeonArray = new Array(); for (i=0; i<20; i++) { attachMovie ("aldeon", "aldeon"+i, i); aldeonArray[i] = _root["aldeon"+i]; aldeonArray[i]._x = random(screenWidth); aldeonArray[i]._y = random(screenHeight); } aldeon._visible = 100; _root.onEnterFrame = function() { for (i=0; i<20; i++) { if (aldeonArray[i].hitTest(_xmouse, _ymouse, true)) { aldeonArray[i]._alpha = 30; } } }; E não esqueça de efetuar o "linkage" de seu mc. Abs Compartilhar este post Link para o post Compartilhar em outros sites
rd111072 1 Denunciar post Postado Outubro 3, 2008 Grande Public! Deu certo, irmão... Agora como eu faço para: - inserir um de cada vez (até 20), cada vez que eu pressionar um botão - fazer cada um dos mcs executar uma ação (tipo gotoAndStop ("aldeon", 2)), sempre que fôr clicado (onPress) ALGUÉM SABE? Compartilhar este post Link para o post Compartilhar em outros sites
rd111072 1 Denunciar post Postado Outubro 6, 2008 bom moçada, Depois de queimar muito a mufa, consegui fazer um botão pra inserir um de cada vez e os tornei clicáveis. Agora preciso fazer cada um dos mcs executar uma ação (tipo gotoAndStop ("aldeon", 2)), sempre que fôr clicado (onPress). Abaixo, a Action como está; screenWidth = 700; screenHeight = 400; var numeroMC:Number = 0; //contador para referenciar as instâncias de aldeon //chamada do botao com funcao que atacha aldeons. bot.onRelease = function() { numeroMC += 1; i = numeroMC - 1; if (numeroMC >= 20){ delete this.onRelease; } aldeonArray = new Array(); //criacao do aldeon por attach, dentro do array. _root.attachMovie ("aldeon", "aldeon"+i, getNextHighestDepth(), i++); aldeonArray[i] = _root["aldeon"+numeroMC]; aldeonArray[i]._x = random(screenWidth); aldeonArray[i]._y = random(screenHeight); //funcao que torna o aldeon (no _root) clicavel. _root["aldeon"+i].onPress = function() { //e remove o aldeon, atraves do this. this.removeMovieClip(); //this.gotoAndStop ("aldeon"+i, 2);<<ainda não funfa... } }Será que alguém sabe??? Compartilhar este post Link para o post Compartilhar em outros sites
rd111072 1 Denunciar post Postado Outubro 6, 2008 Faltou ieu, Éder! :P @eder esse eu deixo com o Public http://forum.imasters.com.br/public/style_emoticons/default/shifty.gif Compartilhar este post Link para o post Compartilhar em outros sites
Public2004 79 Denunciar post Postado Outubro 6, 2008 @eder esse eu deixo com o Public shifty.gif Grande Eder... :rolleyes: rd não seria apenas isso: this.gotoAndStop (2); //agora funfa...Mas neste caso teria que desabilitar o "removeMC", porque a ação é exatamente no botão que estás a remover, aí não faria sentido, a não ser que seja uma ação em outro elemento... Abs. Compartilhar este post Link para o post Compartilhar em outros sites
rd111072 1 Denunciar post Postado Outubro 7, 2008 É isso mesmo Public! Agora os mcs estão sendo ativados um de cada vez através do clique do mouse. No entanto, depois que eu clico em um, não consigo ativar outro que tenha sido attachado antes. Quer dizer: não consigo alternar entre os mcs criados dinamicamente... tenho um outro experimento, que alterna entre os mcs, assim: onClipEvent (enterFrame) { this.onPress = function() { gotoAndStop ("um", 2); } if (this.escolha == 1) { this.onMouseDown = function ():Void { xFind = _root._xmouse; yFind = _root._ymouse; onEnterFrame = function ():Void { this._x += (xFind-this._x)/5; this._y += (yFind-this._y)/5; }; }; } if (this.escolha == 0) { gotoAndStop ("um", 1); delete this.onEnterFrame; } } e dentro do mc: var escolha = 1; _root.um2.escolha = 0; this.swapDepths(1); Isso faz um alternar com o outro. quando um está ativado o outro não se move e vice-versa. só que eu quero fazer isso com mcs dinâmicos. Como faço??? Who knows??? Compartilhar este post Link para o post Compartilhar em outros sites
Public2004 79 Denunciar post Postado Outubro 7, 2008 Voltando ao cód anterior... Você não consegue alternar entre os MC clicados porque definiu uma ação "gotoAndStop" para eles, e no caso essa ação já foi executada, você tem que utilizar por ex: "gotoAndPlay" para dar continuidade na animação do MC. Abs. Compartilhar este post Link para o post Compartilhar em outros sites
rd111072 1 Denunciar post Postado Outubro 7, 2008 Tive uma idéia: O mc "ativado" poderia ser o que estivesse com no nível, getDepth mais alto. Ao invés da variável "escolha", poderia ser assim... Mas não sei como faço para, no onPress, colocar o mc no nível mais alto e criar um if para torná-lo o mc "movível", "ativo"... cês sabem??? Compartilhar este post Link para o post Compartilhar em outros sites
rd111072 1 Denunciar post Postado Outubro 7, 2008 Estou fazendo assim: var numeroMC:Number = 0; //contador para referenciar as instâncias //chamada do botao com funcao que atacha aldeons. bot.onRelease = function() { numeroMC += 1; i = numeroMC - 1; aldeonArray = new Array(); //criacao do aldeon por attach, dentro do array. _root.attachMovie ("aldeon", "aldeon"+i, i, i++); aldeonArray[i] = _root["aldeon"+numeroMC]; aldeonArray[i]._x = casa._x; aldeonArray[i]._y = casa._y; //_root["aldeon"+i].escolha = 0; //funcao que torna o aldeon (no _root) clicavel. aldeonArray[i].onPress = function() { //move o aldeon, se... aldeonArray[i].gotoAndPlay (2); if (aldeonArray[i].getDepth() == 1) { aldeonArray[i].onMouseDown = function ():Void { xFind = _root._xmouse; yFind = _root._ymouse; onEnterFrame = function ():Void { aldeonArray[i]._x += (xFind-aldeonArray[i]._x)/5; aldeonArray[i]._y += (yFind-aldeonArray[i]._y)/5; }; }; } } for(each in _root) { var obj = _root[each]; if(obj instanceof MovieClip) { var objDepth = obj.getDepth(); trace(obj._name + ":" + objDepth) } } } e dentro do mc: this.swapDepths(1); por enquanto ele está atachando os movies no depth igual ao número da instância e quando o mc é clicado vai para o maior depth relativo aos outros. Compartilhar este post Link para o post Compartilhar em outros sites