Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

FredFr

Flash expansivel deslocando divs é possivel

Recommended Posts

Olá Pessoal... to com uma uma duvida braba aqui ...

talvez já exista essa resposta por aqui tambem mas como não encontrei tive que vir por aqui mesmo...

 

Tenho um site que possui um flash animado no topo composto por menu navegação superior, menu lateral inferior esquerdo, imagens randomicas no centro e menu lateral inferior direito (consegui explicar?) e abaixo do flash o conteudo do site disposto em divs normalmente ...

 

O problema é o seguinte: nas paginas secundárias apenas o menu superior do flash ficaria visivel normalmente, e os otros 3 itens do flash ficariam escondidos com uma aba para a pessoa clicar nela, iniciando uma animação onde esses itens se deslocam para baixo. Como o stage tem um tamanho fixo (independente de ser visivel ou não) minhas divs ficam longe do menu sem esses itens... o que gostaria era que quando o menu estiver "recolhido" as divs do meu conteudo do site (htm+css) fiquem logo abaixo desse menu superior (swf) e quando o usuario clicar na aba para expandir o flash ira aumentar deslocando as divs de conteudo para baixo (diferente do banner expansivel que fica SOBRE o conteudo). Consegui explicar?

 

Aproveitado o embalo gostaria de saber tambem se existe uma forma de deixar o flash com largura variavel (ajustando pela tela do usuario. ex: 100%) e a altura com um valor fixo constante (exemplo 250px)... o contrario é possivel tambem (largura fixa e altura variavel)?

 

É possivel fazer isso? via jquery tem uma forma similar mas não tem como usar o flash...

 

Vlw galera

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nunca fiz, mas imagino que seja possível pois pense na lógica da coisa:

Com o jQuery é possível expandir as DIVs, uma vez que o Flash se integra com JavaScript basta unir as coisas...

 

Quanto a largura/altura variável do swf, pense no conteúdo e veja se não vai ficar distorcido dependendo da resolução.

Uma sugestão seria utilizar o swf com 100% (largura/altura) e definir em uma DIV (container deste swf) valores como a largura em percentual e a altura em pixels (valor fixo) por exemplo. Setar estes valores diretamente no html do swf também podem funcionar, mas esta é uma forma que descarto em meus projetos, então só testando mesmo ou aguardando outras sugestões dos colegas.

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde kra...

 

O problema é levar a função do jquery para o flash (já que a chamada para expansão da DIV será feita dentro do swf)...

 

Eu estava tentando tirar algo desse jquery por exemplo http://jquery.andreaseberhard.de/toggleElements/ só que como meu negócio de design e não linguagem passei mal tentando achar a função que expande a DIV com os elementos escondidos... depois para sincronizar a animação com o movimento da DIV eu até me viro nos codigos, mas encontrar a função de expansão e saber como chamar ela no flash é que eu não tenho idéia de como fazer hehe... sugestões?

 

OBS: estou buscando outros jquerys para tentar encontrar um que talvez seja mais facil de adaptar para o swf mas acho que o ex que citei acima é meio que a semelhante aos outros que encontrarei né?

 

 

achei esse jquery aqui que acho que seria mais facil de adaptar (chamar a função no swf) http://www.webintenta.com/9914.html ... como faço para um botão ou mc chamar a função?

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como disse e repito: Nunca fiz, mas na lógica funciona pois o Flash interage com Js.

Veja um exemplo (passível de erros) mas que pode ser melhorado:

HTML/JavaScript (Obs: No exemplo a DIV expansível está identificada como "divSwf")

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
function viewDiv() {
$('#divSwf').slideToggle('medium');
}
</script>

AS

import flash.external.*;
myButton.onPress = function () {
ExternalInterface.call("viewDiv","");
};

 

O problema que vejo é que a DIV se abrirá ou fechará totalmente, então talvez seja necessário um elemento auxiliar apenas para extender o conteúdo do swf, ou encontrar uma forma de expandir ou contrair apenas uma parte do elemento.

 

EDIT: Desculpe, com jQuery dá para definir a altura mínima do elemento.

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se abaixo do menu em Flash não possui nenhum elemento com link no html, basta definir a div com uma z-index superior (acima de todos os elementos da página).

 

Agora, se abaixo do menu expandido (tamanho total do swf), mesmo com z-index superior, tiver links, a solução é usar uma div expansível. Isso requer que em MOUSE_OVER/MOUSE_OUT no Flash você chame uma função em JavaScript no html que aumente e diminua a div onde o swf está inserido.]

 

Quanto a JQuery não sei informar.

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então pessoal,

Sou fraquissimo de programação, então desculpem pela insistência heheh...

 

Public, esse script que voce chama no flash é AS3 ou AS2? Alem disso onde tem esse .slideToggle('medium') você definiu esse valor como?

Porque pelo que entendi (e como ja disse sou mt fraco de pogramação) você definiu um script que ira modificar a divSwf no htm e chama essa função no AS, mas essa função não esta linkando com o jquery para expandir e reduzir ... ou tem?

 

Elektra a parte de baixo tera conteúdos variaveis dependendo da pagina... algumas horas teram links sim.

Mas se eu apenas definir o z-index da DIV superior isso não ira fazer ela aumentar ou reduzir junto com a animação do flash, porque o stage do flash terá um tamanho fixo independente da animação (se existe uma forma de fazer o stage mudar de tamanho dependendo da animação já resolve tudo hehe)... Essa DIV expansivel que voce diz usando MOUSE_OVER / MOUSE _OUT , você poderia deixar um exemplo para que eu possa testar ele alterando as variaveis?

 

Vlw pelas respostas...

Compartilhar este post


Link para o post
Compartilhar em outros sites
Public, esse script que voce chama no flash é AS3 ou AS2? Alem disso onde tem esse .slideToggle('medium') você definiu esse valor como?

Porque pelo que entendi (e como ja disse sou mt fraco de pogramação) você definiu um script que ira modificar a divSwf no htm e chama essa função no AS, mas essa função não esta linkando com o jquery para expandir e reduzir ... ou tem?

Boa tarde FredFr,

 

Estou sugerindo estas opções como ponto de partida para chegar no resultado que você espera. No exemplo que sugeri, utilizamos a biblioteca jQuery para obtermos o efeito de slide (expandir/contrair um elemento com efeitos suaves). A função "JS" responsável pelo efeito é inserida no HTML (para saber mais sobre os parâmetros de configuração, visite: http://api.jquery.com/slideToggle ).

Como esta função que está no HTML será disparada pelo Flash, devemos então criar essa comunicação através da classe "ExternalInterface", onde através de eventos do objeto instanciado como "myButton", chamamos a função JS que está no HTML, veja exemplos:

AS2:

import flash.external.*;
myButton.onPress = function () {
       ExternalInterface.call("viewDiv","");
};

AS3:

import flash.external.*;
myButton.addEventListener(MouseEvent.CLICK, pressedButton)
function pressedButton(e:Event):void {
ExternalInterface.call("viewDiv","");
};

 

Isso funciona! Mas como mencionado é apenas um ponto de partida e deverá ser adaptado para o seu caso, por exemplo: Ao expandir o swf, chamar a função para expandir a DIV simultâneamente e ao contrair, chamar novamente a função para o efeito contrário.

Como parte do swf ficará sempre visível, sugiro deixá-lo com wmode=transparent em uma DIV isolada, com z-index mais alto e seu tamanho final (como expandido e claro, neste momento a parte de baixo do swf vazia para não sobrepor o conteúdo do html). Acrescentar uma nova DIV abaixo desta para aplicar a função/efeito de expansão que irá "empurrar" os outros elementos para baixo. Como disse antes, dá para limitar a altura mínima da DIV e evitar a criação de várias DIVs, z-index, etc. Mas como mencionou que não conhece muito sobre jQuery, aprofundar no assunto neste momento, acredito que irá complicar mais. Lembro também que neste caso além do Flash e JS, um bom conhecimento de CSS ajuda bastante.

 

Espero que se útil, acompanhar o andamento e resultado do trabalho.

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Elektra a parte de baixo tera conteúdos variaveis dependendo da pagina... algumas horas teram links sim.

Mas se eu apenas definir o z-index da DIV superior isso não ira fazer ela aumentar ou reduzir junto com a animação do flash, porque o stage do flash terá um tamanho fixo independente da animação (se existe uma forma de fazer o stage mudar de tamanho dependendo da animação já resolve tudo hehe)... Essa DIV expansivel que voce diz usando MOUSE_OVER / MOUSE _OUT , você poderia deixar um exemplo para que eu possa testar ele alterando as variaveis?

 

 

O SWF terá o tamanho total, da animação expandida.

 

O JavaScript faz a div aumentar e encolher.

 

O CSS é que vai tornar acessível o conteúdo (links, etc) que estiver abaixo quando a div que contém a animação estiver em tamanho reduzido.

 

 

 

No fórum de JavaScript há diversos tópicos semelhantes. Eu uso apenas AS3.

 

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Public, vlw pelas dicas...

andei buscando umas soluções e o que disse parece o mais acertado mesmo...

No entanto vai ficar para um segundo estágio da página. O cliente esta chorando prazo por isso vou fazer um quebra galho com o menu menor mesmo e posteriormente colocarei esse flash com contração da div...

 

Vlw tambem elektra... vou dar uma futucada na parte de javascript para ver se encontro algo que me ajude, mas como disse acima, a urgência superou minha vontade hehe...

Assim que conseguir retomar esse efeito, volto a incomodar por aqui de novo hehe...

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Pessoal... to com uma uma duvida braba aqui ...

talvez já exista essa resposta por aqui tambem mas como não encontrei tive que vir por aqui mesmo...

 

Tenho um site que possui um flash animado no topo composto por menu navegação superior, menu lateral inferior esquerdo, imagens randomicas no centro e menu lateral inferior direito (consegui explicar?) e abaixo do flash o conteudo do site disposto em divs normalmente ...

 

O problema é o seguinte: nas paginas secundárias apenas o menu superior do flash ficaria visivel normalmente, e os otros 3 itens do flash ficariam escondidos com uma aba para a pessoa clicar nela, iniciando uma animação onde esses itens se deslocam para baixo. Como o stage tem um tamanho fixo (independente de ser visivel ou não) minhas divs ficam longe do menu sem esses itens... o que gostaria era que quando o menu estiver "recolhido" as divs do meu conteudo do site (htm+css) fiquem logo abaixo desse menu superior (swf) e quando o usuario clicar na aba para expandir o flash ira aumentar deslocando as divs de conteudo para baixo (diferente do banner expansivel que fica SOBRE o conteudo). Consegui explicar?

 

Aproveitado o embalo gostaria de saber tambem se existe uma forma de deixar o flash com largura variavel (ajustando pela tela do usuario. ex: 100%) e a altura com um valor fixo constante (exemplo 250px)... o contrario é possivel tambem (largura fixa e altura variavel)?

 

É possivel fazer isso? via jquery tem uma forma similar mas não tem como usar o flash...

 

Vlw galera

 

Amigo.

 

Tem como sim. Você pode fazer funções em java script para as suas modificações.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.