Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

san115592

Uma dica

Mensagens Recomendadas

san115592

Bom dia,

tenho uma app em flash (estou a começar), tenho uma layer que tem componentes igual a uma outra.

na layer a AS tenho na frame 5 este cod e funciona bem na frame 6 não funciona

tenho este codigo na frame 6

import fl.data.DataProvider; 
import flash.display.DisplayObject; 

var lista:XML = new XML();
var loader:URLLoader = new URLLoader();
var xmlReqvideos:URLRequest = new URLRequest("media/videos.xml");

loader.load(xmlReqvideos);

loader.addEventListener(Event.COMPLETE, completeHandler);
function completeHandler(evt:Event):void {
lista = XML(evt.target.data);
fotoimagens.dataProvider = new DataProvider(lista);
mostraprimeira();
};

function mostraprimeira () {
mostrarvideo.source=lista.item[0].@grande;
titulo.text=lista.item[0].@label;
};

fotoimagens.addEventListener(Event.CHANGE, miniaturasClique);
function miniaturasClique(event:Event):void {
mostrarvideo.source=event.target.selectedItem.grande
titulo.text=event.target.selectedItem.label
}

stop();

Que tenho eu mal ?  a semelhança do outro AS apenas lhe mudei os nomes das intances, mas o erro é este:

1151: A conflict exists with definition lista in namespace internal.

1151: A conflict exists with definition loader in namespace internal.

1151: A conflict exists with definition xmlReqvideos in namespace internal.

1021: Duplicate function definition.

1021: Duplicate function definition.

1021: Duplicate function definition.

isto nas linhas da frame, 4, 5,6,11,17 e 23.

Mal tem de estar pois não funciona se eu apagar este AS da respectiva frame, a app corre, claro apenas n carregra este ficheiro xml.

Podem-me dar uma ajuda.

Na frame 5 funciona o AS, apenas vai buscar a outro xml, confrome codigo,

import fl.data.DataProvider; 
import flash.display.DisplayObject; 

var lista:XML = new XML();
var loader:URLLoader = new URLLoader();
var xmlReqvideos:URLRequest = new URLRequest("media/fotografia.xml");

loader.load(xmlReqvideos);

loader.addEventListener(Event.COMPLETE, completeHandler);
function completeHandler(evt:Event):void {
lista = XML(evt.target.data);
miniaturas_tl.dataProvider = new DataProvider(lista);
mostraprimeira();
};

function mostraprimeira () {
loadimagens.source=lista.item[0].@grande;
nome.text=lista.item[0].@label;
};

miniaturas_tl.addEventListener(Event.CHANGE, miniaturasClique);
function miniaturasClique(event:Event):void {
loadimagens.source=event.target.selectedItem.grande
nome.text=event.target.selectedItem.label
}

stop();

obrigada se puderem dar uma ajuda, excelente.

Obrigada


Clarisse

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
coxosclassic

estas a declarar 2x as mesmas variavies...

experiemnta assim:

frame5:

import fl.data.DataProvider; 
import flash.display.DisplayObject; 

var lista:XML = new XML();
var loader:URLLoader = new URLLoader();
var xmlReqvideos:URLRequest = new URLRequest("media/fotografia.xml");

loader.load(xmlReqvideos);

loader.addEventListener(Event.COMPLETE, completeHandler);
function completeHandler(evt:Event):void {
        lista = XML(evt.target.data);
        miniaturas_tl.dataProvider = new DataProvider(lista);
        mostraprimeira();
};

function mostraprimeira () {
        loadimagens.source=lista.item[0].@grande;
        nome.text=lista.item[0].@label;
};

miniaturas_tl.addEventListener(Event.CHANGE, miniaturasClique);
function miniaturasClique(event:Event):void {
        loadimagens.source=event.target.selectedItem.grande
        nome.text=event.target.selectedItem.label
}

stop();

frame 6:

lista = new XML();
xmlReqvideos = new URLRequest("media/videos.xml");

loader.load(xmlReqvideos);

loader.addEventListener(Event.COMPLETE, completeHandler);
function completeHandler(evt:Event):void {
        lista = XML(evt.target.data);
        fotoimagens.dataProvider = new DataProvider(lista);
        mostraprimeira();
};

function mostraprimeira () {
        mostrarvideo.source=lista.item[0].@grande;
        titulo.text=lista.item[0].@label;
};

fotoimagens.addEventListener(Event.CHANGE, miniaturasClique);
function miniaturasClique(event:Event):void {
        mostrarvideo.source=event.target.selectedItem.grande
        titulo.text=event.target.selectedItem.label
}

stop();


Cumps,

cc

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
san115592

Obrigada ,

Por azar hj, até o meu cs4 deu raia, tive de desinstalar, já e tarde, é moroso a instalação, amanhã vou fazer conforme a dica, já estive a ver o código!

Obrigada, direi de certeza alguma coisa, se td ficar bem.

Muito obrigada

um abraço


Clarisse

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
san115592

Olá bom dia,

De novo

Já apliquei o codigo que me sugeriste, mas continua a ter o erro 1021: Dupilcate funtion  Definition, nas linhas da frame 6 : 7, 13 e 17, que tenho eu duplicado???

Deve ser a coisa mais simples, mas qd não se vê....., e por mais força que faça acho que menos vejo.

Obrigada

Um abraçoa


Clarisse

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
coxosclassic

:P

é exactamente o que o erro diz: Duplicate function, ou seja tens tb em duplicado as funcoes.

faz assim:

frame5:

import fl.data.DataProvider; 
import flash.display.DisplayObject; 

var lista:XML = new XML();
var loader:URLLoader = new URLLoader();
var xmlReqvideos:URLRequest = new URLRequest("media/fotografia.xml");

loader.load(xmlReqvideos);

loader.addEventListener(Event.COMPLETE, completeHandler);
function completeHandler(evt:Event):void {
        lista = XML(evt.target.data);
        miniaturas_tl.dataProvider = new DataProvider(lista);
        mostraprimeira();
};

function mostraprimeira () {
        loadimagens.source=lista.item[0].@grande;
        nome.text=lista.item[0].@label;
};

miniaturas_tl.addEventListener(Event.CHANGE, miniaturasClique);
function miniaturasClique(event:Event):void {
        loadimagens.source=event.target.selectedItem.grande
        nome.text=event.target.selectedItem.label
}

stop();

frame 6:

lista = new XML();
xmlReqvideos = new URLRequest("media/videos.xml");

loader.removeEventListener(Event.COMPLETE, completeHandler);

loader.load(xmlReqvideos);

loader.addEventListener(Event.COMPLETE, videoCompleteHandler);
function videoCompleteHandler(evt:Event):void {
        lista = XML(evt.target.data);
        fotoimagens.dataProvider = new DataProvider(lista);
        mostraSegunda ();
};

function mostraSegunda () {
        mostrarvideo.source=lista.item[0].@grande;
        titulo.text=lista.item[0].@label;
};

fotoimagens.addEventListener(Event.CHANGE, miniaturasClique);
function miniaturasClique(event:Event):void {
        mostrarvideo.source=event.target.selectedItem.grande
        titulo.text=event.target.selectedItem.label
}

stop();

assim ja deve dar.

tens de prestar mais atencao aos nomes que dás as tuas funcoes e variaveis, pois tinhas muita coisa em duplicado.

nao te aconselho muito a estares a usar frames para desenvolver apps em flash...

separa os problemas por varios scripts ou classes.

se tiveres mais probs avisa.

::EDIT:: Reparei que o erro tb acontece em outras frames.... básicamente tens de renomear todas as variaveis e funcoes que tenhas em duplicado ao longo de todas as frames.


Cumps,

cc

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.