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

    AS3 Loader & funzione length

    Ciao ragazzi,
    ho visto righe di codice AS3 che mi hanno suscitato delle domande. Vi spiego subito le 2 situazioni in cui ho avuto dei punti interrogativi.
    La prima situazione si rifà alla funzione length.

    In una parte viene trascritta così:
    private function creaGalleria(galleria:Array,didascalie:Array):void {
    for(var i:uint=0; i<galleria.length;i++)
    {
    mioLoader[i] = new Loader;
    mioLoader[i].load(new URLRequest(galleria[i]));
    }


    In un'altra parte viene invece trascritta così:
    private function suXMLCaricato(event:Event):void{
    var elenco:XML = new XML(event.target.data);
    var immagini:XMLList = elenco.img.src;
    var didascalie:XMLList = elenco.img.didascalia;
    for(var i:uint=0; i<immagini.length();i++)
    {
    ....
    }

    Come mai nel primo esempio viene utilizzata la funzione length senza parentesi e nel secondo invece vengono messe le parentesi. Sicuramente è una questione di tipo oggetto nel primo caso dovrebbe essere una proprietà ma non capisco perchè questa differenza.

    Altra situzione che mi desta sospetto è la riga di codice:
    mioLoader[i] = new Loader;
    Come mai il costruttore non viene trascritto come nella maggior parte dei casi con le parentesi tonde? in questo modo:
    mioLoader[i] = new Loader();

    Grazie 1000
    Saluti.
    Blasto

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    A) Nel primo caso hai detto bene, si tratta di una proprietà, che per una classe come Array non può essere confusa.
    Mentre nel secondo caso, essendo XMLList una classe che "porta" al suo interno i nodi di un listato xml, non consentirebbe il caso di sovrascrittura se un nodo si chiamasse <length>, il chè creerebbe un po' di magagne da parte del player per l'interpretazione della struttura xml passata all'XMLList, per questo è stato scelto di definire length() come metodo invece che come proprietà.

    B) In quel caso specifico, quando non ci sono parametri da passare alla classe, per il parser non fa differenza che le parentesi ci siano o no, basta il new a stabilire che si sta creando una nuova istanza di quella classe.

  3. #3
    Grazie 1000 and,
    quindi per quanto rigurda il punto b mi sembra di aver cpaito che se quando chiamo il costruttore non ho parametri da passare posso evitare di scrivere le tonde.


    grazie di nuovo
    blasto

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da blasto
    Grazie 1000 and,
    quindi per quanto rigurda il punto b mi sembra di aver cpaito che se quando chiamo il costruttore non ho parametri da passare posso evitare di scrivere le tonde.
    sì, anche se io sono abituato a scriverle sempre, si risparmia giusto una manciata di byte

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.