+ Reply to Thread
Results 1 to 2 of 2

errore #2007: Parameter child must be non-null.

This is a discussion on errore #2007: Parameter child must be non-null. within the Actionscript 3.0 avanzato forums, part of the Flash Italiano category; ciao a tutti, ho associato ad un MovieClip una classe personalizzata...all'interno dello script ho un problema con questa parte di ...

  1. #1
    Luciano. Settled In lcn75 is on a distinguished road lcn75's Avatar
    Join Date
    Dec 2007
    Posts
    43
    Rep Power
    0

    errore #2007: Parameter child must be non-null.

    ciao a tutti,

    ho associato ad un MovieClip una classe personalizzata...all'interno dello script ho un problema con questa parte di codice:

    package classes
    {
    import flash.display.MovieClip;
    import flash.events.MouseEvent;
    import flash.filters.BlurFilter;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.display.Loader;
    import flash.net.URLRequest;
    import classes.transitions.Tweener;

    public dynamic class Mela extends MovieClip
    {
    //creo due variabili (Loader e URLRequest) per caricare i video
    private var loaderMelaVideo:Loader;
    private var urlMelaVideo:URLRequest;

    //pulsante X per chiudere i video (istanza dell'oggetto Chiudi...vedi oggetto chiudi in libreria "properties")
    public var chiudiMelaVideo:Chiudi;
    public function Mela():void
    {
    init();
    }
    //creo la funzione 'init()'
    public function init():void
    {
    //imposto il frameRate del MovieClip Mela (30 fps)
    stage.frameRate=30;

    //condizione vera
    condizione=true;

    //registro le coordinate di Mela
    clipX=this.x;
    clipY=this.y;

    //registro le sue dimensioni
    clipScaleX=this.scaleX;
    clipScaleY=this.scaleY;

    //registro le coordinate del centro dello schermo
    schermoX=(stage.stageWidth/2);
    schermoY=(stage.stageHeight/2);

    //fisso l'angolo di partenza dell'orbita,
    //le coordinate iniziali di Mela, il raggio dell'orbita e la velocità
    angle=0;
    centerX=900;
    centerY=200;
    radiusX=40;
    radiusY=30;
    speed=.02;

    //nascondo i rami del Mela
    this.mMelaRami.alpha=0;
    this.mMelaRami.mMelaRamoStaff.alpha=0;
    this.mMelaRami.mMelaRamoConvegni.alpha=0;
    this.mMelaRami.mMelaRamoInstallazioni.alpha=0;
    this.mMelaRami.mMelaRamoConvenzioni.alpha=0;
    this.mMelaRami.mMelaRamoMostre.alpha=0;
    this.mMelaRami.mMelaRamoTesi.alpha=0;

    //sfuoco il Mela
    this.filters=[new BlurFilter(2,2)];

    //aumento la scala della scritta "MeLa" per renderla leggibile
    this.mMelaTitolo.scaleX=1.6;
    this.mMelaTitolo.scaleY=1.6;

    //aggancio le coordinate della scritta "MeLa" con quelle dell'hotspotMela per orbitare con tutta la struttura
    this.mMelaTitolo.x=mHotspotMelaBase.x;
    this.mMelaTitolo.y=mHotspotMelaBase.y;
    this.mHotspotMelaBase.buttonMode=true;

    //aggiungo gli eventi agli hotspots
    this.mHotspotMelaBase.addEventListener(MouseEvent. ROLL_OVER,ferma);
    this.mHotspotMelaBase.addEventListener(MouseEvent. ROLL_OUT,riparti);
    this.mHotspotMelaBase.addEventListener(MouseEvent. CLICK,zoomIn);

    //aggiungo l'evento orbita al MovieClip Mela (this)
    this.addEventListener(Event.ENTER_FRAME,orbita);
    }

    ...... MANCA UNA PARTE DELLO SCRIPT CHE NON INTERESSA

    ...CONTINUA

    private function mostraMelaTesiVideo1(evt:MouseEvent):void
    {
    this.mMelaRami.mMelaRamoTesi.mHotspotMelaTesiVideo 1.removeEventListener(MouseEvent.CLICK,mostraMelaT esiVideo1);
    trace(evt.target);
    // creo una istanza dell'oggetto loader per il video 1
    loaderMelaVideo = new Loader();
    // carico il video 1
    urlMelaVideo = new URLRequest("Mela_video/melaTesiVideo1.swf");
    // quando il video è completamente caricato...posizionalo sullo schermo
    loaderMelaVideo.contentLoaderInfo.addEventListener (Event.COMPLETE,melaVideosStart);
    // mostra il video
    loaderMelaVideo.load (urlMelaVideo);
    // attiva il pulsante per chiuderlo
    //chiudiMelaVideo.addEventListener (MouseEvent.CLICK, chiudiMelaVideo1);
    }
    // funzione per lanciare i video
    private function melaVideosStart(evt:Event):void
    {
    addChild (loaderMelaVideo);
    loaderMelaVideo.x=-70;
    loaderMelaVideo.y=-300;
    addChild (chiudiMelaVideo);
    chiudiMelaVideo.buttonMode=true;
    //chiudiMelaVideo.x=loaderMelaVideo.x+loaderMelaVide o.width-chiudiMelaVideo.width/2;
    //chiudiMelaVideo.y=loaderMelaVideo.y-chiudiMelaVideo.height;
    chiudiMelaVideo.x=0;
    chiudiMelaVideo.y=0;
    chiudiMelaVideo.addEventListener (MouseEvent.CLICK, chiudiMelaVideo1);
    }

    // funzione per chiudere il video 1
    private function chiudiMelaVideo1 (evt:MouseEvent):void
    {
    trace(chiudiMelaVideo);
    // rimuovo l'evento l'evento che chiude il video
    this.chiudiMelaVideo.removeEventListener (MouseEvent.CLICK, chiudiMelaVideo1);
    //scarico il video dalla memoria
    loaderMelaVideo.unload ();
    //rimuovo il video dallo schermo
    this.removeChild(chiudiMelaVideo);
    //aggiungo l'evento che riapre il video
    this.mMelaRami.mMelaRamoTesi.mHotspotMelaTesiVideo 1.addEventListener (MouseEvent.CLICK, mostraMelaTesiVideo1);
    }
    mi da questo errore:

    [object MovieClip]
    TypeError: Error #2007: Parameter child must be non-null.
    at flash.display::DisplayObjectContainer/addChild()
    at classes::Mela/melaVideosStart()

    praticamente non mi aggiunge l'istanza del pulsante per chiudere il video

    qualche suggerimento?

    grazie

    Luciano

  2. #2
    Luciano. Settled In lcn75 is on a distinguished road lcn75's Avatar
    Join Date
    Dec 2007
    Posts
    43
    Rep Power
    0

    Re: errore #2007: Parameter child must be non-null.

    non avevo importato la classe Chiudi ... comunque non funziona.

    ho creato una classe per il file in questo modo:

    package classes
    {
    import flash.display.MovieClip;
    import flash.events.MouseEvent;
    import flash.display.Loader;
    import flash.events.Event;
    import flash.filters.BlurFilter;
    import flash.net.URLRequest;
    import classes.transitions.Tweener;
    import classes.Mela;//importo la classe del ramo Mela


    import Chiudi;//chiudi è una classe creata dall'oggetto in libreria "chiudi"

    public class Ur extends MovieClip
    {
    private var melaVideoConvenzioni:Array;//creo un array per tutti gli schermi del ramo Mela
    private var melaVideoInstallazioni:Array;
    private var melaVideoMostre:Array;
    private var melaVideoConvegni:Array;
    private var melaVideoTesi:Array;
    private var melaVideoList:Array;
    //creo due variabili (Loader e URLRequest) per caricare i video
    private var loaderMelaVideo:Loader;
    private var urlMelaVideo:URLRequest;

    //assegno alle variabili le dimensioni dello schermo
    private var schermoW:Number=stage.stageWidth;
    private var schermoH:Number=stage.stageHeight;

    //pulsante X per chiudere i video (istanza dell'oggetto Chiudi...vedi oggetto chiudi in libreria "properties")
    public var chiudiMelaVideo:Chiudi;

    //costruttore
    public function Ur():void
    {
    mela();
    }
    // funzione per i comportamneti del ramo Mela
    private function mela():void
    {
    //creo una istanza del pulsante chiudi
    chiudiMelaVideo = new Chiudi();

    mMela.mMelaRami.mMelaRamoTesi.mHotspotMelaTesiVide o1.addEventListener(MouseEvent.CLICK,mostraMelaTes iVideo1);
    //this.mMelaRami.mMelaRamoTesi.mHotspotMelaTesiVideo 2.addEventListener(MouseEvent.CLICK,mostraMelaTesi Video2);
    //this.mMelaRami.mMelaRamoTesi.mHotspotMelaTesiVideo 3.addEventListener(MouseEvent.CLICK,mostraMelaTesi Video3);
    }

    //
    private function mostraMelaTesiVideo1(evt:MouseEvent):void
    {
    mMela.mMelaRami.mMelaRamoTesi.mHotspotMelaTesiVide o1.removeEventListener(MouseEvent.CLICK,mostraMela TesiVideo1);
    trace(evt.target);
    // creo una istanza dell'oggetto loader per il video 1
    loaderMelaVideo = new Loader();
    // carico il video 1
    urlMelaVideo = new URLRequest("Mela_video/melaTesiVideo1.swf");
    // quando il video è completamente caricato...posizionalo sullo schermo
    loaderMelaVideo.contentLoaderInfo.addEventListener (Event.COMPLETE,melaVideosStart);
    // mostra il video
    loaderMelaVideo.load (urlMelaVideo);
    // attiva il pulsante per chiuderlo
    //chiudiMelaVideo.addEventListener (MouseEvent.CLICK, chiudiMelaVideo1);
    }
    // funzione per lanciare i video
    private function melaVideosStart(evt:Event):void
    {
    addChild (loaderMelaVideo);
    loaderMelaVideo.x=+400;
    loaderMelaVideo.y=+300;
    addChild (chiudiMelaVideo);
    chiudiMelaVideo.buttonMode=true;
    chiudiMelaVideo.x=loaderMelaVideo.x+loaderMelaVide o.width-chiudiMelaVideo.width/2;
    chiudiMelaVideo.y=loaderMelaVideo.y-chiudiMelaVideo.height;
    chiudiMelaVideo.addEventListener (MouseEvent.CLICK, chiudiMelaVideo1);
    }

    //
    /*private function mostraMelaTesiVideo2(evt:MouseEvent):void
    {
    this.mMelaRami.mMelaRamoTesi.mHotspotMelaTesiVideo 2.removeEventListener(MouseEvent.CLICK,mostraMelaT esiVideo2);
    trace(evt.target);
    }*/

    //
    /*private function mostraMelaTesiVideo3(evt:MouseEvent):void
    {
    this.mMelaRami.mMelaRamoTesi.mHotspotMelaTesiVideo 3.removeEventListener(MouseEvent.CLICK,mostraMelaT esiVideo3);
    trace(evt.target);
    }*/

    //******** NASCONDI VIDEO MELA
    // funzione per chiudere il video 1
    private function chiudiMelaVideo1 (evt:MouseEvent):void
    {
    trace(chiudiMelaVideo);
    // rimuovo l'evento l'evento che chiude il video
    chiudiMelaVideo.removeEventListener (MouseEvent.CLICK, chiudiMelaVideo1);
    //scarico il video dalla memoria
    loaderMelaVideo.unload ();
    //rimuovo il video dallo schermo
    removeChild(chiudiMelaVideo);
    //aggiungo l'evento che riapre il video
    //this.mMelaRami.mMelaRamoTesi.mHotspotMelaTesiVideo 1.addEventListener (MouseEvent.CLICK, mostraMelaTesiVideo1);
    }
    }
    }
    così funziona ... volevo sapere se posso integrare tutto nella classe del MovieClip oppure no

    grazie

    Luciano

+ Reply to Thread

Similar Threads

  1. TypeError: Error #2007: Parameter text must be non-null
    By Tanith in forum Actionscript 3.0 newbies
    Replies: 0
    Last Post: 19-03-10, 01:37
  2. change parameter from outside class
    By davids701124 in forum Actionscript 3.0 newbies
    Replies: 2
    Last Post: 09-03-10, 23:47
  3. TypeError: Error #2007: child non nullo
    By Jeman in forum Actionscript 3.0 avanzato
    Replies: 34
    Last Post: 09-10-09, 15:45
  4. Help......How to send and get parameter values from an .SWF to another .SWF
    By NunoGouveia in forum Actionscript 3.0 newbies
    Replies: 0
    Last Post: 25-09-08, 22:27
  5. null??!!??
    By zizzolo in forum Flash Italiano
    Replies: 4
    Last Post: 25-10-07, 14:08

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts