Gisa_iagami 0 Denunciar post Postado Outubro 2, 2006 Galera, minha duvida é a seguinte Estou num processo do novo desafio q estou a criar. É um desafio de correlacionar. De um lado terao 9 palavras (q sao escolhidas aleatoriamente) e um dicionario no outro lado com significados destas 9 e mais 2 por exemplo Eu montei um xml com as questoes. <correlacione><questao> <palavra>Meninas Super Poderosas</palavra> <significado> docinho, lindinha e florzinha foram criadas pelo professor para combater o mau</significado></questao><questao> <palavra>Jonhy Bravo</palavra> <significado> Mulherengo e burrinho, sempre se dá mal ao tentar paquerar </significado></questao></questao></correlacione>Segue abaixo o desenho do layout: Agora eu to em duvida de como empilhar elas aleatoriamente para fazer a comparação. O objetivo do jogo é jogar as palavras de um lado para outro para no final ver quais estão certas Eu pensei em fazer um array (mesmo sem saber direito) mas nao sei se da pra fazer array duplo E para empilhar? Compartilhar este post Link para o post Compartilhar em outros sites
« Léo » 0 Denunciar post Postado Outubro 2, 2006 Assim... num entendi td q você ker fzer... mas se uma das coisas eh colocar as palavras do XML nakelas nuvens, você pode fzer assim: Coloca um campo de txt dinamico em cima de cada nuvem; Instancia-os de "txt01","txt02"... e assim por diante. dae você usa o codigo: var arquivo:XML = new XML();arquivo.ignoreWhite = true;arquivo.onLoad = function(sucess:Boolean) { if (sucess) { var correl:XMLNode = arquivo.firstChild; for (i=0;i<=9; i++) { eval("txt0"+(i+1)).text = correl.childNodes[i].childNodes[0].childNodes; } }else { trace("ERRO AO ABRIR O XML"); }}arquivo.load("infos.xml"); Aki funcionou legal... Qqr coisa posta ae, e se puder, da uma explicada melhor no funcionamento do joguinho.... sou meio lento e num sakei mt a parte de "jogar as palavras de um lado para outro para no final ver quais estão certas "... rsrsrsrs Abraços! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Froskie 0 Denunciar post Postado Outubro 2, 2006 Vou fazer apenas um ajuste neste código, mesmo que ele não sirva pro caso, vale a notação: var arquivo:XML = new XML();var mcRaiz:MovieClip = this;arquivo.ignoreWhite = true;arquivo.onLoad = function(sucess:Boolean) { if (sucess) { var correl:XMLNode = arquivo.firstChild; for (i=0;i<=9; i++) { mcRaiz["txt"+(i+1)].text = correl.childNodes[i].childNodes[0].childNodes; } }else { trace("ERRO AO ABRIR O XML"); }}arquivo.load("infos.xml");Evite usar o "eval", em vez disto substitua como eu troquei. Outra coisa, essa de usar txt01, 02, é fria, porque se o usuário chegar a 10, como é que fica? 010? É isso aí... Compartilhar este post Link para o post Compartilhar em outros sites
« Léo » 0 Denunciar post Postado Outubro 3, 2006 Opa beleza... mas pode explicar pq nao usar o eval?! eh q to tao acostumado...rsrsrs Compartilhar este post Link para o post Compartilhar em outros sites
Gisa_iagami 0 Denunciar post Postado Outubro 3, 2006 vlw....a duvida maior é como empilhar as questoesDeixa explicar melhor: imagina um livro. De um lado esq você tem palavras. em baloes como no desenho. Do lado direito varios significados embaralhados (so q estariam um em cima do outro como uma pagina mesmo) a pessoa vai pra frente e pra tras pra ver os significados, e se achar oa palavra ao qual o significado pertence ela arrasta. Ela tera um tempo pra fazer isso. Ela pode associar tudo ou nao. E ao final do tempo faz-se a contagem de quantas ela associou certa. Os porems, tem nivel o desafio entao por ex: no 1 ele pega 5 palavras e 8 significados (5 relacionados a essas 5 palavras e mais 2 aleatorios) Compartilhar este post Link para o post Compartilhar em outros sites
« Léo » 0 Denunciar post Postado Outubro 3, 2006 http://forum.imasters.com.br/public/style_emoticons/default/upset.gif :wacko: :blink: Complexo d+ pra minha cabeça! rsrsrs... num entendi nd! rsrsrs http://forum.imasters.com.br/public/style_emoticons/default/blush.gif Compartilhar este post Link para o post Compartilhar em outros sites
Antoniosp 2 Denunciar post Postado Outubro 3, 2006 Opa beleza... mas pode explicar pq nao usar o eval?! eh q to tao acostumado...rsrsrsEu li uma vez, se não me engano aqui, sobre questões de processamento do flash e otimização do AS. Pelo que me lembro era: eval("txt0"+(i+1)).text = ...//ruimmcRaiz["txt"+(i+1)].text = ...//melhorvar txt:TextField = mcRaiz["txt"+(i+1)];txt.text = ... //melhor aindaA terceira opção é melhor quando você altera vários argumentos de uma coisa só. Ao invés de repetir 10 vezes um eval() ou um mc[], usa uma variável. Gisa_iagami Você quer empilhar as questões como se cada uma estivesse numa página? Uma boa é o pageFlip. Tem um tópico discutindo ele aqui. Flw Compartilhar este post Link para o post Compartilhar em outros sites
« Léo » 0 Denunciar post Postado Outubro 4, 2006 Opa beleza... mas pode explicar pq nao usar o eval?! eh q to tao acostumado...rsrsrs Eu li uma vez, se não me engano aqui, sobre questões de processamento do flash e otimização do AS. Pelo que me lembro era: eval("txt0"+(i+1)).text = ...//ruimmcRaiz["txt"+(i+1)].text = ...//melhorvar txt:TextField = mcRaiz["txt"+(i+1)];txt.text = ... //melhor aindaA terceira opção é melhor quando você altera vários argumentos de uma coisa só. Ao invés de repetir 10 vezes um eval() ou um mc[], usa uma variável. Gisa_iagami Você quer empilhar as questões como se cada uma estivesse numa página? Uma boa é o pageFlip. Tem um tópico discutindo ele aqui. Flw :blink: To ficando td enrolado...Num seria mais simples/otimizado usar: eval("txt0"+(i+1)).text = no lugar de: var mcRaiz:MovieClip = this; ... var txt:TextField = mcRaiz["txt"+(i+1)]; txt.text = ?? Afinal, este segundo define um mc somente para controlar o txto de outros. ou o consumo de memória do eval eh maior? Abraços!! :) Compartilhar este post Link para o post Compartilhar em outros sites
Antoniosp 2 Denunciar post Postado Outubro 5, 2006 Eu dei um exemplo de se usar um mc, mas pode ser o _root["bla"+i] também, não tem problema. Você não cria um mc só pra acessar o txt, você usa o mc em que o txt está dentro. Caso ele esteja no _root, usa _root[] mesmo. Tipo, saca a diferença: for (var i:Number = 0; i < 10; i++) { _root.attachMovie("id", "novo_id" + i, i);//exemplo 1 _root["novo_id"+i]._x = 25*i + 10; _root["novo_id"+i]._alpha = 60; _root["novo_id"+i]._rotation = 90; _root["novo_id"+i].onRelease = function(){/*...*/} _root["novo_id"+i].onRollOver = function(){/*...*/} _root["novo_id"+i].etc = i ////e ///por aí //vai}for (var i:Number = 0; i < 10; i++) { var atual:MovieClip = _root.attachMovie("id", "novo_id" + i, i);//exemplo 2 atual._x = 25*i + 10; atual._alpha = 60; atual._rotation = 90; atual.onRelease = function(){/*...*/} atual.onRollOver = function(){/*...*/} atual.etc = i ////e ///por aí //vai} No primeiro exemplo o flash tem que pensar toda a vez "qual é o mc com o nome 'novo_id' mais o i?......ah, já sei" E isso vai consumindo. No segundo exemplo ele só pensa isso uma vez (na verdade ele nem pensa, só armazena o mc criado na var) e vai usando a variável, melhor. Agora entre o _root[] ou o eval() o primeiro é melhor. É porque com o eval o flash tem que percorrer todo o filme até chegar a um resultado que satisfaça. Com _root[] o caminho já meio percorrido (sabemos que está dentro do _root; como poderia ser _root.menu[bla] e ja saberíamos que o que se procura está dentro do menu, dentro do _root). Bom, é isso. Flw Compartilhar este post Link para o post Compartilhar em outros sites
Gisa_iagami 0 Denunciar post Postado Outubro 5, 2006 Antoniosp, galera Seria isso mesmo De um lado você tera todas as palavras E do outro os significados embaralhados e empilhados a ideia é ter pageflip mas simplesmente nao sei como usar com o xml Eu fiz algo aqui mas nao sei se ta atendendo direito. Num flame fiz um mc da pagina indo. E outra voltando Os dois botoes q executam esse mc Acima eu pus um dynamic text O meu codigo: stop();var r:Number;var r2:Number;function exibirDados() { for(i=0;i<a_palavra.length;i++) { eval("t"+Number(i+1)).text=a_palavra[i]; } r=random(a_significado.length); explicacao.text=a_significado[r];}exibirDados();function mudarSignificado() { r2=random(a_significado.length); this.onEnterFrame=function() { r2==r?r2=random(a_significado.length):delete this.onEnterFrame; } explicacao.text=a_significado[r2]; r=r2;}avancar_btn.onRelease=function() { esqmove.gotoAndPlay(2);}voltar_btn.onRelease=function() { dirmove.gotoAndPlay(2);}Ele ate le e randomiza... Mas ai tem a questao como fazer para arrastar os baloes pra dentro do significado? Como comparar? Acho q tem algo errado no codigo sendo feito assim Compartilhar este post Link para o post Compartilhar em outros sites
Antoniosp 2 Denunciar post Postado Outubro 6, 2006 Para arrastar os significados você pode usar o startDrag() e o stopDrag(). Aí quando o cara soltar o botão do mouse você verifica se o significado bate com o mc arrastado. Se sim você remove o mc e aumenta os pontos, se não você faz o mc voltar pra onde estava. Fiz um exemplo pensando nos mc das palavras. Eles teriam uma propriedade chamada "significado" que teria o texto do significado. Aí é só comparar com o texto atual do seu txt. palavra1.onPress = function(){ this.startDrag(); this._xoriginal = this._x; this._yoriginal = this._y;}palavra1.onRelease = function(){ this.stopDrag(); if(this.hitTest(X, Y, true) && this.significado == explicacao.text){//troque o X e o Y pelos do seu TXT //aumenta score, etc }else{ //diminui score e volta o mc pra onde estava this._x = this._xoriginal; this._y = this._yoriginal; }} Depois você pode automatizar o processo usando o 'for' e o xml. Tem um tópico rolando aí sobre isso: http://forum.imasters.com.br/index.php?showtopic=196341 Flw Compartilhar este post Link para o post Compartilhar em outros sites
Gisa_iagami 0 Denunciar post Postado Outubro 6, 2006 antonio, fiz o drag and drop mas ainda estou tendo problemas...A ideia do desafio q estou a criar é essa:* Correlacione a expressão/ jargão do mercado financeiro ao seu significado, para cada expressão existe uma única definição correta.* Você terá 9 minutos para correlacionar os termos, ao final do tempo o desafio é encerrado e as expressões não relacionadas serão contabilizadas como respostas erradas.* As expressões estarão disponíveis na lateral esquerda da tela, aquelas que já tiverem sido associadas serão exibidas em uma cor mais clara.* As definições estarão nas páginas do dicionário, para visualizá-las navegue utilizando o botão AVANÇAR (incluir o ícone do botão nas regras) e VOLTAR (incluir o ícone do botão nas regras).* Para fazer a correlação arraste a expressão para a página que contém a definição que você julga ser a correta.* Para substituir a associação de uma expressão basta arrastá-la novamente para a página que contém um outro significado, isto fará com que ela automaticamente seja associada a nova definição.* Quando você associar todas as expressões, ou aquelas que conhece, clique no botão CONCLUIR para finalizar o desafio.(incluir o ícone do botão nas regras).Eu estou conseguindo fazer ler o xml de ambos. e tb ta arrastando mas nao conseguir deixar um outro em alfa. E eles tao ficando um por cima do outro. Eu zipei o fla pra ficar mais facil de verem. Estou desesperada pois é pra amanha o.owww.terramagic.wind3.info/correlacione.rar Compartilhar este post Link para o post Compartilhar em outros sites
Gisa_iagami 0 Denunciar post Postado Outubro 9, 2006 eu estou precisando de algumas coisasNao to conseguindo implementarcomo eu comparo as informações do xml tipo pergunta = explicaçãovisto o xml acima2º eu consegui fazer elas randomizarem apenas uma vez no inicio pra sanar o problema com o papel mas ao arrastar vejo todas as palavras juntar e nao so uma em cada local.Estou precisando urgente Compartilhar este post Link para o post Compartilhar em outros sites