Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Argument error #2025 su removeChild

    Ciao a tutti!
    Sono sempre alle prese con la mia galleria XML.
    Questa mattina, appena svegliato, sono andato a vedere tutto contento la mia galleria che APPARENTEMENTE non doveva avere più problemi e invece.....ho un:

    ArgumentError: Error #2025: Il valore fornito per DisplayObject deve essere un elemento secondario del chiamante.
    at flash.display:isplayObjectContainer/getChildIndex()
    at Gallery/removePellicola()
    at MethodInfo-352()

    Il codice è il seguente:
    Codice PHP:
    function onImageMouseClick(evt:EventfocusIndex:Number):void{
        
    pellicola.visible true;
        
        
        
    //Getting the string name of the image
        
    var focusImage:String imageStringContainer[focusIndex];
        
        
    //create a Loader to load the image, added to the master_mc as a child
        
    var imageFocusLoader = new Loader();
        
        
    imageFocusLoader.load(new URLRequest(focusImage));
        
        
    imageFocusLoader.addEventListener(MouseEvent.CLICKremoveFocusImage);
        
    addChild(imageFocusLoader);
        
        
    pellicola.addEventListener(MouseEvent.CLICK, function removePellicolaAux(evt:Event):void
                      
    removePellicola(evt,imageFocusLoader);    });
        }
    //onImageMouseOut


    function removePellicola(evt:Eventfocus:Loader):void{
        
    removeChild(DisplayObject(focus));
        
    pellicola.visible false;
        }
    //removeMaschera

    function removeFocusImage(evt:Event):void{
        
    removeChild(DisplayObject(evt.target));
        
    pellicola.visible false;
        }
    //removeFocusImage 
    L'errore mi viene dato solo su removePellicola e non su removeFocusImage.
    Come posso correggere?
    Perché ho questo errore?

    Thanks!

  2. #2
    evidentemente prova a togliere qualcosa che nn è dove gli indichi tu..

    purtroppo quel codice non è il massimo per gestire rimozioni di oggetti e ci sono anche funzioni anomime che complicano il debug e andrebbero sempre evitate

    se il codice l'hai fatto tu ti consiglio di mettere sempre l'oggetto corrente(che poi dovrai togliere) in una variabile

    così poi con un removeChild(variabile) ti risolvi tutti i problemi
    Photogallery Flash Gratis - http://www.flashfiles.biz -
    Template in Flash con pannello di Amministrazione e deeplinking Guarda il template qui

  3. #3
    Ciao,
    il codice è mio.
    Intendi dire hce dovrei mettere l'oggetto focus dentro un MovieClip e fare successivamente il removeChild?
    Ovvero:

    Codice PHP:
    function removePellicola(evt:Eventfocus:Loader):void{
    var 
    obj:MovieClip focus;
        
    removeChild(obj);
        
    pellicola.visible false;
        }
    //removeMaschera 

  4. #4
    Originariamente inviato da trez
    Ciao,
    il codice è mio.
    Intendi dire hce dovrei mettere l'oggetto focus dentro un MovieClip e fare successivamente il removeChild?
    Ovvero:

    Codice PHP:
    function removePellicola(evt:Eventfocus:Loader):void{
    var 
    obj:MovieClip focus;
        
    removeChild(obj);
        
    pellicola.visible false;
        }
    //removeMaschera 
    no la mia era una cosa proprio di concetto:
    nell'ipotesi di una galleri carica ogni volta 1 immagine e 1 cornice (esempio banale)
    una volta caricate con un loader queste due cose le ficchi in una variabile (o in un oggetto ma nn vorrei complicare)

    cioè proprio sul loader complete fai un:

    imgattuale=e.target.content;

    corniceattuale=e.target.content;

    in questo modo queste tue variabili contengono sempre l'ultima immagine caricata

    poi le aggiungi normalmente allo stage : addChild(imgattuale).....

    quando le devi rimuovere lo fai semplicemente removeChild(imgattuale);


    ----------fine delirio della domenica

    per ovviare al tuo errore in maniera più easy:



    codice:
    function removePellicola(evt:Event, focus:Loader):void{    
    if(DisplayObject(focus)){
    removeChild(DisplayObject(focus));
    pellicola.visible = false; }
        }//removeMaschera
    Photogallery Flash Gratis - http://www.flashfiles.biz -
    Template in Flash con pannello di Amministrazione e deeplinking Guarda il template qui

  5. #5
    Ho comunque quell'errore.
    Ho notato che se clicco sull'immagine (per chiuderla) e quindi richiamo removeFocusImage, non mi viene dato nessun errore, mentre se clicco all'esterno dell'immagine e quindi richiamo removePellicola, mi viene dato l'errore.

    La cosa curiosa è che se apro successivamente tre immagini chiudendole con removeFocusImage e una quarta chiamando removePellicola, l'errore mi viene dato TRE volte.

  6. #6
    C'è un modo per vedere che oggetti (e a che indice) sonopresenti priam di un removeChild?
    Potrei provare a controllare se effettivamente elimina gli oggetti o meno.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.