Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Gestione Eventi

  1. #1

    Gestione Eventi

    Salve sn nuovo di questo linguaggio e volevo chiedervi, io ho creato questa classe:

    class Card {
    var _points;
    var _d;
    var _i;
    var _t;
    public function Card(up, right, down, left, t, i, d) {
    _points = new Array(up, right, down.left);
    _root.createEmptyMovieClip(i, d);
    _d = d;
    _i = i;
    _t = t;
    }
    public function get UpPoint() {
    return _points[0];
    }
    public function set UpPoint(value) {
    _points[0] = value;
    }
    public function get RightPoint() {
    return _points[1];
    }
    public function set RightPoint(value) {
    _points[1] = value;
    }
    public function get DownPoint() {
    return _points[2];
    }
    public function set DownPoint(value) {
    _points[2] = value;
    }
    public function get LeftPoint() {
    return _points[3];
    }
    public function set LeftPoint(value) {
    _points[3] = value;
    }
    public function DrawCard(x, y) {
    _root.getInstanceAtDepth(_d).moveTo(x, y);
    _root.getInstanceAtDepth(_d).lineStyle(1, 0x000000, 100);
    if (_t == 1) {
    var w = x+100;
    var h = y+150;
    } else {
    var w = x+50;
    var h = y+75;
    }
    _root.getInstanceAtDepth(_d).lineTo(w, y);
    _root.getInstanceAtDepth(_d).lineTo(w, h);
    _root.getInstanceAtDepth(_d).lineTo(x, h);
    _root.getInstanceAtDepth(_d).lineTo(x, y);
    }
    }


    ora però avrei bisogno di gestire gli eventi onClick e onMouseOver degli oggetti di questa classe... qualcuno sa aiutarmi? grazie

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Ma esattamente di quali oggetti legati alla classe? Parli del clip che crei all'inizio?

  3. #3

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Potresti creare un riferimento per l'oggetto direttamente nella classe e sfruttarlo per assegnargli le azioni.
    Io la tua classe la vedrei meglio in questo modo:
    Codice PHP:
    class Card {
        private var 
    P:Object// points
        
    private var T:MovieClip// target
        
    private var N:String// name
        
    private var L:Number// level
        
    private var B:Boolean// 
        
    function Card (p:Objectt:MovieClipn:Stringl:Numberb:Boolean) {
            
    != null : {upPoint:0rightPoint:0bottomPoint:100leftPoint:150};
            
    != null _root;
            
    != null randomID();
            
    != null t.getNextHighestDepth();
            
    != null true;
        }
        private function 
    randomID ():String {
            var 
    r:String "";
            var 
    s:String "abcdefghkijlmnopqrstuvwxyz0123456789ABCDEFGHKIJLMNOPQRSTUVWXYZ";
            var 
    a:Array = s.split("");
            for(var 
    i:uint 08i++){
                var 
    n:uint Math.floor(Math.random()*a.length);
                
    r+=a[n];
            }
            return 
    r;
        }
        public function 
    draw (xy) {
            var 
    rif:MovieClip T[N];
            
    rif.moveTo(xy);
            
    rif.lineStyle(10100);
            var 
    w:Number x+100 x+50;
            var 
    h:Number y+150 y+75;
            
    rif.lineTo(wy);
            
    rif.lineTo(wh);
            
    rif.lineTo(xh);
            
    rif.lineTo(xy);
        }
        public function 
    get cardMovie ():MovieClip {
            return 
    T[N];
        }
        public function 
    get upPoint ():Number {
            return 
    P.upPoint;
        }
        public function 
    get rightPoint ():Number {
            return 
    P.rightPoint;
        }
        public function 
    get bottomPoint ():Number {
            return 
    P.bottomPoint;
        }
        public function 
    get leftPoint ():Number {
            return 
    P.leftPoint;
        }
        public function 
    set upPoint (n:Number) {
            
    P.upPoint n
        
    }
        public function 
    set rightPoint (n:Number) {
            
    P.rightPoint n
        
    }
        public function 
    set bottomPoint (n:Number) {
            
    P.bottomPoint n
        
    }
        public function 
    set leftPoint (n:Number) {
            
    P.leftPoint n
        
    }


  5. #5
    ok grazie mille, ora provo...

  6. #6
    scusa se rompo ma mi potresti fare un'esempio di creazione di un oggetto card non capisco bene cosa devo passargli come parametri... grazie

  7. #7
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Codice PHP:
    var c:Card = new Card({upPoint:20rightPoint:200bottomPoint:200leftPoint:20}, this"test"10true);
    c.draw(00);
    c.cardMovie.onPress = function () {
        
    trace("button pressed");
    }
    c.cardMovie.onRollOver = function () {
        
    trace("rollover");
    }
    c.cardMovie.onRollOut = function () {
        
    trace("rollout");


  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Ah, nel costruttore tutti i parametri sono opzionali.
    Piuttosto rivendendo la classe mi sono accorto che l'unica cosa che crea effettivamente la grafica della "card" è la funzione "draw", ma non la vedo bene la cosa, cioè a quel punto fai tutto nella funzione draw e crei una classe con funzione "drawCard" statica che restituisce direttamente un riferimento al clip creato.

  9. #9
    scusa mi io ora ho creato un nuovo documento flash e aggiungo il seguente codice
    Codice PHP:
    import Card
    var 
    c:Card = new Card({upPoint:20rightPoint:200bottomPoint:200leftPoint:20}, this"test"10true); 
    c.draw(00); 
    c.cardMovie.onPress = function() {
         
    trace("button pressed");
    };
    c.cardMovie.onRollOver = function() {
         
    trace("rollover"); 
    }; 
    c.cardMovie.onRollOut = function() {
         
    trace("rollout"); 
    }; 
    stop(); 
    però non fa nulla... e non na neanche errori...

  10. #10
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Vero, non l'avevo testata e ho scordato di riportare il createEmptyMovieClip dalla tua classe.

    Codice PHP:
    class Card {
        private var 
    P:Object;// points
        
    private var T:MovieClip;// target
        
    private var N:String;// name
        
    private var L:Number;// level
        
    private var B:Boolean;//
        
    function Card (p:Objectt:MovieClipn:Stringl:Numberb:Boolean) {
            
    != null : {upPoint:0rightPoint:0bottomPoint:100leftPoint:150};
            
    != null _root;
            
    != null randomID ();
            
    != null t.getNextHighestDepth ();
            
    != null true;
            
    T.createEmptyMovieClip(NL);
        }
        private function 
    randomID ():String {
            var 
    r:String "";
            var 
    s:String "abcdefghkijlmnopqrstuvwxyz0123456789ABCDEFGHKIJLMNOPQRSTUVWXYZ";
            var 
    a:Array = s.split ("");
            for (var 
    i:Number 08i++) {
                var 
    n:Number Math.floor (Math.random () * a.length);
                
    += a[n];
            }
            return 
    r;
        }
        public function 
    draw (xy) {
            var 
    rif:MovieClip T[N];
            
    trace(rif);
            
    rif.moveTo (x,y);
            
    rif.lineStyle (1,0,100);
            
    rif.beginFill (0xFFFFFF);
            var 
    w:Number 100 50;
            var 
    h:Number 150 75;
            
    rif.lineTo (w,y);
            
    rif.lineTo (w,h);
            
    rif.lineTo (x,h);
            
    rif.lineTo (x,y);
            
    rif.endFill();
        }
        public function 
    get cardMovie ():MovieClip {
            return 
    T[N];
        }
        public function 
    get upPoint ():Number {
            return 
    P.upPoint;
        }
        public function 
    get rightPoint ():Number {
            return 
    P.rightPoint;
        }
        public function 
    get bottomPoint ():Number {
            return 
    P.bottomPoint;
        }
        public function 
    get leftPoint ():Number {
            return 
    P.leftPoint;
        }
        public function 
    set upPoint (n:Number) {
            
    P.upPoint n;
        }
        public function 
    set rightPoint (n:Number) {
            
    P.rightPoint n;
        }
        public function 
    set bottomPoint (n:Number) {
            
    P.bottomPoint n;
        }
        public function 
    set leftPoint (n:Number) {
            
    P.leftPoint n;
        }


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.