Autor Tópico: [Dúvidas] Flash Developer (Bloquear conteúdo)  (Lida 3459 vezes)

Offline benji

  • Iniciado
  • *
  • Mensagens: 11
    • Ver Perfil
[Dúvidas] Flash Developer (Bloquear conteúdo)
« em: 19 de Junho de 2007, 13:43:07 »
Boas,

tenho uma pequena grande dúvida. Fiz uma pequena galeria num site que ando a construir em flash. Quando o utilizador carrega numa imagem esta aumenta para se visualizar melhor e depois basta clicar na imagem para a fechar. Ora o que eu gostava de fazer mas não vejo maneira de conseguir era: o utilizador clica na imagem pequena, esta aumenta, e eu queria impedir o utilizador de mexer ou clicar no resto dos botões do site sem antes fechar a imagem...??

Não sei se perceberam a ideia... Se me conseguirem ajudar agradecia imenso é que não estou mesmo a conseguir fazer isso!!

Offline gimbras

  • Emblema de Prata
  • ****
  • Mensagens: 1105
    • Ver Perfil
    • NoFuturo.com
Re: [Dúvidas] Flash Developer (Bloquear conteúdo)
« Responder #1 em: 19 de Junho de 2007, 16:49:15 »
Tens que desactivar os botões que não queres que sejam clicáveis.

Código: [Seleccione]
botao_btn.enable=false;
Podes também tirares a visibilidade, além de os desactivares.

Cumps.

Offline benji

  • Iniciado
  • *
  • Mensagens: 11
    • Ver Perfil
Re: [Dúvidas] Flash Developer (Bloquear conteúdo)
« Responder #2 em: 20 de Junho de 2007, 01:06:47 »
Boas,

quando a imagem ta aumentada coloquei-a num layer, e tenho um layer a parte com actionscript. Esse código coloco-o nesse layer e quando a imagem tá aumentada certo?? Se for assim já tentei mas nao "bloqueia" o botão...  ???

Offline alftuga

  • Aprendiz
  • **
  • Mensagens: 202
    • Ver Perfil
    • http://www.alftuga.net
Re: [Dúvidas] Flash Developer (Bloquear conteúdo)
« Responder #3 em: 20 de Junho de 2007, 15:01:41 »
podes por o codigo aqui no forum que esta a gerir isso tudo por favor.

Offline yarcub

  • Aprendiz
  • **
  • Mensagens: 138
    • Ver Perfil
Re: [Dúvidas] Flash Developer (Bloquear conteúdo)
« Responder #4 em: 20 de Junho de 2007, 15:14:41 »
A técnica que aconselho é criar um movieclip que cubra todo o Stage e apanhe todos os eventos do rato.
Depois é passar o movieclip da imagem para a depth mais alta.

Exemplo:
(Cria um botão no stage com instance name "btn")
Código: [Seleccione]
var ref:Object = this;
var mc:Object = {};

btn.onRelease = function(){
mc = ref.createEmptyMovieClip("sd",ref.getNextHighestDepth());
mc.beginFill(0x000000,60);
mc.lineTo(0, Stage.height);
mc.lineTo(Stage.width, Stage.height);
mc.lineTo(Stage.width,0);
mc.lineTo(0,0);
mc.endFill();

mc.onRollOver =  function(){
this.useHandCursor = false;
}

mc.onRelease = function(){
this.removeMovieClip();
}
}

Offline gimbras

  • Emblema de Prata
  • ****
  • Mensagens: 1105
    • Ver Perfil
    • NoFuturo.com
Re: [Dúvidas] Flash Developer (Bloquear conteúdo)
« Responder #5 em: 20 de Junho de 2007, 16:35:42 »
O que faria era assim:

Se o botão que abre a imagem for clicado, cria-se uma variável com um dado valor.
Se o botão que fecha a imagem for clicado, a mesma variável fica com outro valor.

E depois faz-se: se a variável que referi tiver o valor X (por exemplo), os botões que escolheste ficam desactivados. Se não tiver esse valor X, os botões ficam activos.

O yarcub já está a criar um movieclip via actionscript, talvez seja mais difícil de entender.
É à escolha do freguês. :D

Cumps.

Offline alftuga

  • Aprendiz
  • **
  • Mensagens: 202
    • Ver Perfil
    • http://www.alftuga.net
Re: [Dúvidas] Flash Developer (Bloquear conteúdo)
« Responder #6 em: 20 de Junho de 2007, 23:46:27 »
Código: [Seleccione]
var pista:MovieClip = this;
// metes dentro do array todos os nomes dos teus botões
var listaBts:Array = new Array(bt0, bt1, bt2);
var numBts:Number = listaBts.length;
function rel0() {
// aumento a imagem e vamos desactivar todos os bts menos o nosso
desactivaBts(this);
this._xscale = 150;
this._yscale = 150;
// tb vamos dar um outro comportamento ao nosso evento onRelease
// quando vais clicar uma segunda vez no bt ele tem que reagir de uma outra maneira
this.onRelease = rel1;
}
function rel1() {
// imagem volta ao seu valor inicial
// o meu bt volta a ter o primeiro comportamento
// e vamos activar todos os bts
this._xscale = 100;
this._yscale = 100;
this.onRelease = rel0;
activaBts();
}
function ov() {
// efeito over
}
function out() {
// efeito out
}
function desactivaBts(p) {
for (var i = 0; i<numBts; i++) {
if (listaBts[i] != p) {
listaBts[i].enabled = false;
}
}
}
function activaBts() {
for (var i = 0; i<numBts; i++) {
listaBts[i].enabled = true;
}
}
function init() {
for (var i = 0; i<numBts; i++) {
listaBts[i].onRelease = rel0;
listaBts[i].onRollOut = out;
listaBts[i].onRollOver = ov;
}
}
init();


e como diz o Gimbras
É à escolha do freguês!
« Última modificação: 20 de Junho de 2007, 23:50:21 por alftuga »

Offline benji

  • Iniciado
  • *
  • Mensagens: 11
    • Ver Perfil
Re: [Dúvidas] Flash Developer (Bloquear conteúdo)
« Responder #7 em: 21 de Junho de 2007, 00:31:44 »
Muito obrigado a todos pela grande ajuda.  :D

Experimentei todas as maneiras que voces puseram mas foi com esta última que percebi um pouco melhor e após mudar algumas coisas lá pus isto a funcionar  :D .

Deixaram aqui um freguês contente ;D

Offline yarcub

  • Aprendiz
  • **
  • Mensagens: 138
    • Ver Perfil
Re: [Dúvidas] Flash Developer (Bloquear conteúdo)
« Responder #8 em: 21 de Junho de 2007, 18:18:57 »
É sempre bom para fidelizar os clientes.  ;D

Mas a solução que expliquei ñ é assim tão difícil quanto possa parecer.
Ñ postei foi o código ajustado à tua solução, apenas um exemplo para um copy&paste rápido no flash e ajudar a compreender a solução.

 




Roleta das Anedotas - Abre noutra janela