Olá todos,
alguém poderia me ajudar na seguinte questão: estou desenvolvendo um menu via XML e gostaria que este menu fosse organizado em diversas colunas, ainda não descobri que expressão teria que utilizar para que este posicionamento ocorra.
Vou dar um exemplo: digamos que tenho 12 MCs criados pelo XML, a primeira coluna terá 5 itens e ao detectar que tenho mais nodes no XML, o flash automaticamente criará a segunda coluna com mais cinco itens, e constatando que tenho ainda dois nodes sobrando ele criará a terceira coluna com somente dois itens. E assim por diante, com 12, 18, 30, 50 itens, a quantidade que seja.
um exemplo visual deste tipo de organização seria mais ou menos assim:
item 00 - item 05 - item 10 - item 15
item 01 - item 06 - item 11 - item 16
item 02 - item 07 - item 12 - item 17
item 03 - item 08 - item 13
item 04 - item 09 - item 14
a expressão que estou utilizando para o posicionamento no eixo _y é:
eval("menuItem"+i)._y = eval("menuItem"+(i-1))._y+72;
qual seria a das colunas?
***
Outra questão: gostaria de mover este grande MC de tamanho variável que seria formado ao conter todos os itens. Como faço para retornar o valor do tamanho final deste MC para os botões que moverão o MC horizontalmente? Seria algo como:
MCHolder._x = MCHolder._x - (MCHolder._width/numerodecolunas)
Obrigado a todos e um grade abraço.
Publicidade
|
|
Page 1 of 1
XML e posicionamento em colunas como posicionar items de coluna em coluna
#2
Posted 14 March 2008 - 06:11 AM
Finalmente encontrei a solução para a questão das colunas.
Resolvi postar aqui pois talvez possa interessar à alguém:
No entanto duas questões ainda permanecem fritando meus miolos.
01. Gostaria de mover este grande MC de tamanho variável que seria formado ao conter todas as colunas. Como faço para retornar o valor do tamanho final deste MC para os botões que o moverão horizontalmente?
02. E agora, como faço para que isso tudo funcione no onResize?
Alguma dica?
Um abraço e abrigado à todos.
Resolvi postar aqui pois talvez possa interessar à alguém:
CÓDIGO
var numberRows:Number = 7;
var cellHeight:Number = 72;
var cellWidth:Number = Stage.width;
////
for (var i = 0; i<portfolioXML.childNodes[0].childNodes.length; i++) {
//// menu layout configuration //
eval("menuItem"+i).i = i;
var cellX:Number = Math.floor(i/numberRows);
var cellY:Number = i%numberRows;
eval("menuItem"+i)._x = cellX*cellWidth;
eval("menuItem"+i)._y = cellY*cellHeight;
}
var cellHeight:Number = 72;
var cellWidth:Number = Stage.width;
////
for (var i = 0; i<portfolioXML.childNodes[0].childNodes.length; i++) {
//// menu layout configuration //
eval("menuItem"+i).i = i;
var cellX:Number = Math.floor(i/numberRows);
var cellY:Number = i%numberRows;
eval("menuItem"+i)._x = cellX*cellWidth;
eval("menuItem"+i)._y = cellY*cellHeight;
}
No entanto duas questões ainda permanecem fritando meus miolos.
01. Gostaria de mover este grande MC de tamanho variável que seria formado ao conter todas as colunas. Como faço para retornar o valor do tamanho final deste MC para os botões que o moverão horizontalmente?
02. E agora, como faço para que isso tudo funcione no onResize?
Alguma dica?
Um abraço e abrigado à todos.
#3
Posted 15 March 2008 - 06:37 PM
Esse MovieClip de tamanho variável que vai receber as colunas seria qual MovieClip, menuItem? Você recupera o tamanho assim:
Você quer fazer o que quando a função onResize for disparada?
[]s
CÓDIGO
memuItem._width;
menuItem._height
menuItem._height
Você quer fazer o que quando a função onResize for disparada?
[]s
#4
Posted 15 March 2008 - 08:14 PM
Na verdade, Natan, descreverei o efeito que pretendo para ficar mais fácil de entender o que estou tentando, desculpe pelo post longo:
Estou tentando misturar dois conceitos, o de carregamento do menu por XML e sliding menu (exemplo de sliding menu), cada coluna de 5 botões aparecerá uma por vez na tela pois terá a largura Stage.width.
Caso eu tenha 12 botões carregados do XML, por exemplo, terei três colunas de 5 botões. Para acessar a segunda coluna, ou a terceira, clicarei em setas abaixo desse menu que farão correr este grande MC (comprido na horizontal) formado pelas três colunas. Cada clique na seta, este grande MC correrá o valor de grandeMC._width/numeroDeColunas.
O tamanho do grandeMC será Stage.width*numeroDeColunas. E o numeroDeColunas será definido pelo XML. Como gostaria de que só aparecesse uma coluna por vez, independente da resolução do usuário, o tamanho dessas colunas deverá ser flexível, ou seja, deverá sofrer a interferência do onResize.
Compliquei demais a história?
A pergunta é: como passo o valor de _width deste grandeMC para as setas e também para o onResize. E se o usuário mexer na janela, esse valor será atualizado para que se o layout se mantenha?
São questões ainda difíceis para mim, novato que sou.
Coloquei um dos rascunhos do site no media fire pra você entender (ainda sem XML ou onResize, é só um rascunho), clique nas setas (eu sei, tá correndo direto, não me preocupei com isso ainda)
http://www.mediafire.com/?oyzc1phzn9e
Natan, muito obrigado, este fórum é um dos melhores muito por conta da atenção que você dispensa as pessoas que procuram ajuda por aqui. Não tenho dúvida disso.
Estou tentando misturar dois conceitos, o de carregamento do menu por XML e sliding menu (exemplo de sliding menu), cada coluna de 5 botões aparecerá uma por vez na tela pois terá a largura Stage.width.
Caso eu tenha 12 botões carregados do XML, por exemplo, terei três colunas de 5 botões. Para acessar a segunda coluna, ou a terceira, clicarei em setas abaixo desse menu que farão correr este grande MC (comprido na horizontal) formado pelas três colunas. Cada clique na seta, este grande MC correrá o valor de grandeMC._width/numeroDeColunas.
O tamanho do grandeMC será Stage.width*numeroDeColunas. E o numeroDeColunas será definido pelo XML. Como gostaria de que só aparecesse uma coluna por vez, independente da resolução do usuário, o tamanho dessas colunas deverá ser flexível, ou seja, deverá sofrer a interferência do onResize.
Compliquei demais a história?
A pergunta é: como passo o valor de _width deste grandeMC para as setas e também para o onResize. E se o usuário mexer na janela, esse valor será atualizado para que se o layout se mantenha?
São questões ainda difíceis para mim, novato que sou.
Coloquei um dos rascunhos do site no media fire pra você entender (ainda sem XML ou onResize, é só um rascunho), clique nas setas (eu sei, tá correndo direto, não me preocupei com isso ainda)
http://www.mediafire.com/?oyzc1phzn9e
Natan, muito obrigado, este fórum é um dos melhores muito por conta da atenção que você dispensa as pessoas que procuram ajuda por aqui. Não tenho dúvida disso.
#5
Posted 16 March 2008 - 02:54 PM
Agora entendi o que você quer fazer. O maior problema é, você já conseguiu usar o XML e montar esse slide menu?
Conseguindo usar o XML já fica bem mais fácil, para as colunas, você andaria quando clicar em um botão o tamanho de um botão. Por exemplo, se os botões tem o tamanho de 50px de largura (width), quando clicar na setinha de próximo andaria 50px para a esquerda.
Para o MovieClip do efeito, você terá que começar com um MovieClip em branco no palco, ele deverá ficar em branco para receber o MovieClip de seu conteúdo que deverá ser importado via attachMovie para cada item de um XML. Complicou? A lógica é mais ou menos parecida com essa galeria:
http://www.mxstudio.com.br/views.tutorial....d=3&aid=969
Conseguindo importar os MovieClips da biblioteca, você recupera o tamanho do MovieClip que antes estava vazio da forma que eu te passei. Ai é possivel interagir com o onResize e quando alguma seta for clicada. Entendeu mais ou menos o que disse?
[]s
Conseguindo usar o XML já fica bem mais fácil, para as colunas, você andaria quando clicar em um botão o tamanho de um botão. Por exemplo, se os botões tem o tamanho de 50px de largura (width), quando clicar na setinha de próximo andaria 50px para a esquerda.
Para o MovieClip do efeito, você terá que começar com um MovieClip em branco no palco, ele deverá ficar em branco para receber o MovieClip de seu conteúdo que deverá ser importado via attachMovie para cada item de um XML. Complicou? A lógica é mais ou menos parecida com essa galeria:
http://www.mxstudio.com.br/views.tutorial....d=3&aid=969
Conseguindo importar os MovieClips da biblioteca, você recupera o tamanho do MovieClip que antes estava vazio da forma que eu te passei. Ai é possivel interagir com o onResize e quando alguma seta for clicada. Entendeu mais ou menos o que disse?
[]s
#6
Posted 16 March 2008 - 05:30 PM
Já sim, já usei em outros projetos anteriores o sliding menu e o XML, os conheço relativamente bem, apenas relativamente, não sou nenhum expert. Só não havia misturado os dois antes. 
Bacana, vou estudar este tutorial que você me passou o link. De repente encontro minha solução lá.
Entendi perfeitamente, e é justamente isso que faria, attachMovie em um MC vazio. Mas a questão principal é que o onResize deverá atuar em dois momentos, tanto no espaçamento das colunas do swf do XML que será carregado, como no valor passado aos botões.
O espaçamento dessas colunas é Stage.width, ou seja se o usuário mexer na janela aumentando-a por exemplo, não é só o MC container que reposiciona, o espaçamento das colunas aumenta também, mas acontece que esse swf que tem as colunas tá dentro do MC container. Ou seja, consigo fazer com que o onResize reconheça e interfira em tempo real no MC container, não no tamanho das colunas do swf que está dentro dele. Entendeu o problema? Meio complicado, não é?
Vou fazer o seguinte, estudarei o link que você me passou, testarei algumas soluções que ainda não tentei, e dou nóticias por aqui, tendo conseguido (tomara que sim) ou não.
Se conseguir posto a solução pra quem quiser ver.
Mais uma vez obrigado.
Um abraço. abstrato
Bacana, vou estudar este tutorial que você me passou o link. De repente encontro minha solução lá.
Entendi perfeitamente, e é justamente isso que faria, attachMovie em um MC vazio. Mas a questão principal é que o onResize deverá atuar em dois momentos, tanto no espaçamento das colunas do swf do XML que será carregado, como no valor passado aos botões.
O espaçamento dessas colunas é Stage.width, ou seja se o usuário mexer na janela aumentando-a por exemplo, não é só o MC container que reposiciona, o espaçamento das colunas aumenta também, mas acontece que esse swf que tem as colunas tá dentro do MC container. Ou seja, consigo fazer com que o onResize reconheça e interfira em tempo real no MC container, não no tamanho das colunas do swf que está dentro dele. Entendeu o problema? Meio complicado, não é?
Vou fazer o seguinte, estudarei o link que você me passou, testarei algumas soluções que ainda não tentei, e dou nóticias por aqui, tendo conseguido (tomara que sim) ou não.
Se conseguir posto a solução pra quem quiser ver.
Mais uma vez obrigado.
Um abraço. abstrato
#7
Posted 16 March 2008 - 09:08 PM
O maior problema é que os MovieClips são importados da biblioteca dinamicamente e possuem nomes diferentes. Para que você recupere o tamanho de um deles, você teria que criar um Array que armazenasse os nomes desses MovieClips, e depois você recuperava eles. Algo mais ou menos como isso:
Com isso talvez o Flash consiga retornar corretamente o item atual que está sendo exibido, lembre-se de quando mudar o item mudar a variável atual para o número atual do MovieClip sendo exibido. Mas é algo parecido, não sei se funciona, mas a lógica é essa.
[]s
CÓDIGO
var mcs:Array = new Array();
var atual:Number;
for (var i:Number=0; i<4; i++) {
var mc:MovieClip = container.attachMovie("item"+i, _root.getNextHighestDepth());
mcs.push(mc);
}
var listener:Object = new Object();
listener.onResize = function() {
trace(container.mcs[atual]);
};
Stage.addListener(listener);
var atual:Number;
for (var i:Number=0; i<4; i++) {
var mc:MovieClip = container.attachMovie("item"+i, _root.getNextHighestDepth());
mcs.push(mc);
}
var listener:Object = new Object();
listener.onResize = function() {
trace(container.mcs[atual]);
};
Stage.addListener(listener);
Com isso talvez o Flash consiga retornar corretamente o item atual que está sendo exibido, lembre-se de quando mudar o item mudar a variável atual para o número atual do MovieClip sendo exibido. Mas é algo parecido, não sei se funciona, mas a lógica é essa.
[]s
#8
Posted 17 March 2008 - 01:46 PM
Legal,
esta me parece uma solução mais provável. Em breve dou notícias.
Gracias.
Até . abstrato
esta me parece uma solução mais provável. Em breve dou notícias.
Gracias.
Até . abstrato
Share this topic:
Page 1 of 1
Similar Topics
| Topic | Forum | Started By | Stats | Last Post Info | |
|---|---|---|---|---|---|
|
Google Music tem armazenamento gratuito como trunfo
|
Notícias |
Notícias
|
|
|
|
Como conecto um mdb em ambiente cluster?
|
ColdFusion |
fagnerreis
|
|
|
|
duvidas
como faço para anexar arquivos .cdr |
Corel Draw |
guerreronato
|
|
|
|
Layout
Como cobrar? |
Freelancers |
VernonLacerda
|
|
|
|
Google se une a japonesa DoCoMo para crescer no exterior
|
Notícias |
Notícias
|
|
|
|
Levar variáveis de session do PHP para ColdFusion?
Tem como fazer!! |
ColdFusion |
novato_cf
|
|
|
|
ASP No Mac
Como Rodar "ASP" no Mac |
ASP |
bittencourt
|
|
|
|
Submenu personalizado
Como personalizar um submenu |
Dreamweaver |
crisan19
|
|
Publicidade
|
|

Help













