irgo 0 Denunciar post Postado Outubro 23, 2008 Olá..estou montando uma estrutura no flash que abre janelas a la windows...pra isso eu criei um movieclip Janela, fiz o linkage ai ele virou a classe Janela extendida de MovieClip, adicionei ele no palco..ate ai beleza..o problema eh q eu preciso passar alguns parametros pra dentro desse movieclip mas não to conseguindo...preciso controlar outros mcs q tão dentro dele e tbm n consigo o código eh assim: var objJanela:Janela = new Janela(); mcJanela.addChild(objJanela); function maximiza(evt:Event):void { if (evt.currentTarget.currentFrame == 1) { evt.currentTarget.gotoAndStop(2); } else { evt.currentTarget.gotoAndStop(1); } } mcJanela.objJanela.addEventListener(MouseEvent.MOUSE_UP, maximiza); como q eu faço pra controlar esses movieclips "atachados" e mandar variaveis para dentro desse moviclip que agora eh classe? flw Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Outubro 24, 2008 não entendi muito bem, mas não seria só mcJanela.objJanela.variavel = "valor" Compartilhar este post Link para o post Compartilhar em outros sites
hufersil 145 Denunciar post Postado Outubro 24, 2008 Para que você possa controlar os itens internos de um movie clip que você marcou para exportar, você deve criar uma classe. package { import flash.display.MovieClip; import flash.events.*; import flash.net.*; class Janela extends MovieClip { // aqui você coloca os mesmos nomes dos movieclip's que estão dentro da "janela" public var buttonMaximize:MovieClip; public var buttonMinimize:MovieClip; public var buttonClose:MovieClip; function Janela(){} } } Desta forma você consegue acessar os elementos internos da janela. Para que o código funcione, você precisa desabilitar também uma coisa que chamamos de "for lazy guys" aqui na empresa. Vá em: - File - Publish Settings - Aba Flash - clique no botão "settings" ao lado de "action script version" (que deverá estar selecionado como ActionScript 3.0) - DESABILITE a opção "Automatically declare stage instances" [complementando] Você não pode acessar direto porque, como a Janela extende MovieClip e MovieClip não é mais uma classe dinamica e você não declarou uma classe Janela, o compilador não sabe de onde vem a referencia, então dá erro mesmo. @braços Compartilhar este post Link para o post Compartilhar em outros sites
irgo 0 Denunciar post Postado Outubro 24, 2008 alass hufersil, brigadão msm..funcionou aki... soh q agora to com um outro problema, não sei c to num momento de lesera mas simplesmente n consegui fazer o seguinte. Preciso adicionar dentro do Janela uma lista de itens...no caso criei outra classe, a ListaPortfolio, ai por um for eu posiciono eles la dentro..como c fosse um attachMovie msm..o problema eh q n "atacha" todos...n sei c eh pq todos os Itens tem o msm nome mas aparece soh um, sendo q meu for eh um laço q vai ate 5. o código é esse: function defineTela(mc) { //aki eu defino em que item do menu eu cliquei para abrir a janela e em relação a isso eu populo a Janela. if (mc=="mcHome") { } else if (mc=="mcPort") { var objPort:ListaPortfolio = new ListaPortfolio(); var nY = 25; objPort.x = 3; objPort.y = nY; for (var i=0; i<5; i++) { nY +=25; objPort.y = nY; addChildAt(objPort,i); } } } defineTela(nomeMC); será q pode me dar uma luz? eu quero fazer exatamente igual o attachMovie, adicionar itens e posicionar eles um embaixo do outro flw Compartilhar este post Link para o post Compartilhar em outros sites
hufersil 145 Denunciar post Postado Outubro 27, 2008 Cara, pelo que você fez, deveria funcionar. Depende também de como está o restante da programação... vou colocar um exemplo de como fazer com colunas e linhas var cores:Array = [0xFFCC00,0xFF0000,0x0000FF,0x00FF00,0x00CC00,0xCCFFCC]; var colunas:int = 20; var linhas:int = 20; var mc:MovieClip; for(var line:int = 0; line < linhas; line++) { for(var col:int = 0; col < colunas; col++) { // aqui você pode substituir pelo objeto que você quer criar // estou desenhando dinamicamente só para testar mc = new MovieClip(); mc.graphics.lineStyle(1,0x666666,1,true,'none'); mc.graphics.beginFill(cores[ Math.round(Math.random()*(cores.length-1)) ], 1); mc.graphics.drawRect(0,0,20,20); mc.graphics.endFill(); mc.x = mc.width * col; mc.y = mc.height * line; addChild(mc); } } Compartilhar este post Link para o post Compartilhar em outros sites
irgo 0 Denunciar post Postado Outubro 31, 2008 alass massa, funcionou o seu código aqui..não sei bem o que tava errado no meu mas consegui resolver, valeu flw Compartilhar este post Link para o post Compartilhar em outros sites