+ Reply to Thread
Results 1 to 3 of 3

Problema con interfaccia

This is a discussion on Problema con interfaccia within the Actionscript 3.0 avanzato forums, part of the Flash Italiano category; Ciao, sto per la prima volta cercando di utilizzare le interfacce e mi sto scontrando con alcuni problemi che non ...

  1. #1
    Member Flash Addict acca2o is on a distinguished road
    Join Date
    Feb 2008
    Posts
    65
    Rep Power
    6

    Problema con interfaccia

    Ciao,
    sto per la prima volta cercando di utilizzare le interfacce e mi sto scontrando con alcuni problemi che non riesco a spiegarmi.

    Ho definito le 2 classi:
    Moto
    Auto

    che implementano l'interfaccia:
    IMezzo
    che dichiara il metodo:
    accendi()

    Per istanziare una moto scrivo:
    var honda:IMezzo = new Moto();

    per richiamare poi i metodi scrivo:
    honda.accendi();

    e fin qui tutto bene.


    1) se voglio generare un array di mezzi di trasporto devo per forza usare un oggetto temporaneo?
    var temp:IMezzo = new Moto();
    var mezzi:Array = new Array();
    mezzi[0] =temp;

    o esiste un modo per assegnare un tipo ai singoli item dell'array?



    2) quando provo ad accedere alla proprità x di honda il compilatore mi dice che non esiste (sia moto che auto estendono Sprite)
    non riesco a capirne il motivo.
    Devo forse definire anche una classe Mezzo che estenda Sprite e che poi sia a sua volta estesa da Moto e Auto?



    Aiutatemi a far luce...
    grazie
    Paolo

  2. #2
    Administrator Living At The FlepStudio! Flep is on a distinguished road
    Join Date
    Jul 2007
    Posts
    5,762
    Rep Power
    11

    Re: Problema con interfaccia

    1) anche io faccio così, va benissimo. Inserisci ogni istanza delle tue classi ( oggetti ) in un Array e ne tieni raccia per poi recuperarne metodi e proprietà a tempo debito.

    2) x dovrebbe essere accessibile. Però, quando tipizzi una variabile se ad esempio la Moto estende la Sprite, prova così:
    var honda:Sprite=new Moto();

  3. #3
    Member Flash Addict acca2o is on a distinguished road
    Join Date
    Feb 2008
    Posts
    65
    Rep Power
    6

    Re: Problema con interfaccia

    ho fatto un po' di prove ed esperimenti e questo è il risultato:

    1) come già detto, dopo aver definito l'interfaccia IMezzo e le classi Moto e Auto che la implementano, genero l'array di istanze così:

    var temp:IMezzo;
    var mezzi:Array = new Array();

    temp = new Moto();
    mezzi[0] =temp;
    temp = new Auto();
    mezzi[1] =temp;
    ecc...


    Se devo passare gli item dell'array ad un metodo di una classe Autostrada, il metodo si aspetta un parametro di tipo IMezzo:

    public metodoGenerico (mezzo:IMezzo):void
    ...


    all'interno del metodo, se devo accede alle proprietà x e y, o se semplicemente devo eseguire un inserimento dell'istanza passata all'istanza di Autostrada (sempre estensione di Sprite) devo fare un cast a Sprite:

    Sprite(mezzo).x = 100;
    Sprite(mezzo).y = 200;
    addChild(Sprite(mezzo));

    se invece voglio accedere ai metodi della classe Moto o Autom sfruttando l'interfaccia IMezzo:
    mezzo.accendi();
    mezzo.frena();
    ...


    Quindi pare che:
    proprietà e metodi propri dell'interfaccia si chiamano senza eseguire cast
    proprietà e metodi delle classi super si chimano facendo prima il cast

    Vi torna?

+ Reply to Thread

Similar Threads

  1. Interfaccia
    By fabrizio@lodesani.org in forum Flash CS4
    Replies: 1
    Last Post: 17-02-10, 08:56
  2. interfaccia con as 3.0
    By melba in forum Actionscript 3.0 base
    Replies: 0
    Last Post: 24-07-08, 22:15
  3. Problema con interfaccia
    By acca2o in forum Actionscript 3.0 base
    Replies: 2
    Last Post: 27-03-08, 14:17
  4. Interfaccia per CD/DVD
    By Goldrakes73 in forum Flash Italiano
    Replies: 5
    Last Post: 12-11-07, 15:24

Tags for this Thread

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