Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

san115592

Uma dica

Recommended Posts

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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.