Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Ciclo su EVENTI MOUSE

  1. #1

    Ciclo su EVENTI MOUSE

    Ciao a tutti, sto passando da l'utilizzo di As 2 ad As 3.

    Stavo creando il menu di un progetto. Questi bottoni sono dei movieclip con dentro 2 frames per ogni stato con etichetta "ON" e "OFF". Inoltre ho creato un ARRAY dove sono presenti tutti i link a cui devono linkare i pulsanti.

    in As 2 usavo questo ciclo:

    function activeSecLink()
    {
    for (var i:Number = 0; i<3; i++)
    {
    link = _root['secLink'+i];
    link.n = _root.links02Htm[i];

    link.onRollOver = function()
    {
    this.gotoAndPlay("on");
    efx_sound("soft_beep1");
    };
    link.onRollOut = function()
    {
    this.gotoAndPlay("off");
    efx_sound("soft_beep1");
    };
    link.onRelease = function()
    {
    getURL(this.n, "_blank");
    efx_sound("metallic");
    };
    }
    }

    Ho provato ad adattarlo ad as 3 ma ho avuto serie difficoltà... potreste illuminarmi su come poter adattare il medesimo ciclio pero' in As 3?

    Thanks a lot...

    MICK

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Non è complicato, solo che chiaramente quando assegni una funzione al clip tramite eventi dovrai tenere conto che dentro alla funzione non potrai usare "this", al posto del quale puoi utilizzare la proprietà target dell'oggetto passato alla funzione dall'evento.
    Per farla breve, ho un clip che si chiama "pippo" e lo voglio far spostare di frame come nel tuo caso al rollover e rollout

    Codice PHP:
    pippo.addEventListener(MouseEvent.ROLL_OVERroll);
    pippo.addEventListener(MouseEvent.ROLL_OUTroll);

    function 
    roll (e:MouseEvent) {
        if (
    e.type == MouseEvent.ROLL_OVER) {
            
    e.target.gotoAndStop("on");
        } else {
            
    e.target.gotoAndStop("off");
        }

    Ne consegue che puoi trasformare il tuo codice da AS2 ad AS3 in questo modo:

    Codice PHP:
    function activeSecLink() {
        for (var 
    i:uint=0i<3i++) {
            var 
    link MovieClip(root)['secLink'+i];
            
    link._root.links02Htm[i];
            
    link.addEventListener(MouseEvent.ROLL_OVERroll);
            
    link.addEventListener(MouseEvent.ROLL_OUTroll);
            
    link.addEventListener(MouseEvent.CLICKclick);
        }
    }
    function 
    roll (e:MouseEvent) {
        if (
    e.type == MouseEvent.ROLL_OVER) {
            
    e.target.gotoAndPlay("on");
        } else {
            
    e.target.gotoAndPlay("off");
        }
        
    efx_sound("soft_beep1");
    }
    function 
    click (e:MouseEvent) {
        
    navigateToURL(new URLRequest(e.target.n), "_blank");
        
    efx_sound("metallic");


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.