Visualizzazione dei risultati da 1 a 6 su 6

Discussione: onRollOver

  1. #1
    Utente di HTML.it L'avatar di danesi
    Registrato dal
    May 2007
    Messaggi
    208

    onRollOver

    Ciao a tutti.

    Vorrei fare un banner interattivo (quattro immagini caricae da file esterno).

    Per ora vorrei caricare sullo stage un'immagine e fare in modo che venga sostituita con un'altra quando ci passo sopra con il mouse.
    Di seguito il codice:

    import mx.transitions.Tween;
    import mx.transitions.easing.*;

    var i=1;

    this.createEmptyMovieClip("pa1", 5);


    loadMovie("01_living.jpg", pa1);


    function rollover():Void {
    trace("tdr");
    this.createEmptyMovieClip("pa1", 5);
    if (_root.i == 1);
    {
    loadMovie("01_living.jpg", pa1);
    }
    if (_root.i == 2)
    {
    loadMovie("02_img.jpg", pa1);
    }
    if (_root.i == 3)
    {
    loadMovie("05_img.jpg", pa1);
    _root.i = 0;
    }

    trace(_root.i);
    _root.i = _root.i+1;

    }


    this["pa1"].onRollOver = rollover;


    I vari if sono per impostare una rotazione di tre immagini ciclica (so che non è molto elegante come codice).

    Dove sbaglio dato che non funziona. (lo stesso codice associato alla pressione di un pulsante anzichè al passaggio del mouse sopra l'mc creato funziona).


    Grazie in anticipo.
    Zona - alias Danesi

  2. #2
    i = 1;
    var abilitato:Boolean = true;
    var loader:MovieClipLoader = new MovieClipLoader();
    var listener:Object = new Object();
    loader.addListener(listener);
    listener.onLoadInit = function(target_mc) {
    if (abilitato) {
    target_mc.onRollOver = rollover;
    }
    target_mc.onRollOut = rollout;
    };
    this.createEmptyMovieClip("pa1", this.getNextHighestDepth());
    loader.loadClip("1.jpg", "pa1");
    function rollover():Void {
    switch (i) {
    case 1 :
    loader.loadClip("2.jpg", "pa1");
    i = 2;
    abilitato = false;
    break;
    case 2 :
    loader.loadClip("3.jpg", "pa1");
    i = 3;
    abilitato = false;
    break;
    case 3 :
    loader.loadClip("1.jpg", "pa1");
    i = 1;
    abilitato = true;
    break;
    }
    }
    function rollout():Void {
    abilitato = true;
    pa1.onRollOver = rollover;
    }


    è un pò contorto perchè si deve abilitare e disabilitare il clip altrimenti li cicla perchè quando carica si trova direttamente in rollover, ma funziona...


  3. #3
    Codice PHP:
    1;
    var 
    initialize:Boolean true;
    var 
    loader:MovieClipLoader = new MovieClipLoader();
    var 
    listener:Object = new Object();
    loader.addListener(listener);
    listener.onLoadInit = function(target_mc) {
        if (
    i==and initialize)target_mc.onRollOver rollover;
        
    target_mc.onRollOut rollout;
    };
    this.createEmptyMovieClip("pa1"this.getNextHighestDepth());
    loader.loadClip("1.jpg""pa1");
    function 
    rollover():Void {
        switch (
    i) {
        case 
    :
            
    loader.loadClip("2.jpg""pa1");
            
    2;
            break;
        case 
    :
            
    loader.loadClip("3.jpg""pa1");
            
    3;
            break;
        case 
    :
            
    loader.loadClip("4.jpg""pa1");
            
    4;
            break;
        case 
    :
            
    loader.loadClip("1.jpg""pa1");
            
    1;
            
    initialize=false;
            break;
        }
        
    trace(i);
    }
    function 
    rollout():Void {
        
    pa1.onRollOver rollover;

    così è meglio

  4. #4
    Utente di HTML.it L'avatar di danesi
    Registrato dal
    May 2007
    Messaggi
    208
    Grazie mille ora lo provo...
    In realtà il mio problema è che se creo un nuovo movie clip o se carico un'immagine su un mc esitente in libreria mediante "loadMovie" perdo i comandi collegati allo stesso.

    Ad esempio


    var mci:MovieClip = this.attachMovie("mc", "mc", -1);

    //loadMovie("07.jpg", mci);

    function rollover():Void{
    trace("ER");
    }

    mci.onRollOver = rollover;


    se tolgo il commento al loadMovie e carico sopra l'originale (mc contine già un'immagine) la funzione di rollover smette di funzionare.
    Zona - alias Danesi

  5. #5
    è per questi problemi che ti ho messo il movieClipLoader, in modo da poter controllare i caricamenti e gestire le funzionalità di conseguenza.

    con il tuo codice il rollOver non funziona più perchè lo assegni quando l'immagine non è ancora caricata nel mc, e nel codice non ci sono controlli per sapere quando questo è completo.


  6. #6
    Utente di HTML.it L'avatar di danesi
    Registrato dal
    May 2007
    Messaggi
    208
    credo di aver capito.

    Il mio problema è che devo inserire il tutto in un altro contesto.

    Quattro mc con quattro immagini che entrano con una tween e che ogni volta che ci passo sopra con il mouse si scambiano posto cambiando l'immagine che contengono caricandola da file.

    di seguito il codice senza il cambio di immagini (solo il cambio di posizione)


    import mx.transitions.Tween;
    import mx.transitions.easing.*;
    var tmp = 1;
    var intro = 0;


    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    // Definizioni Funzioni

    function rollover():Void {
    //trace("OK");
    if (tmp == 1 & intro == 1){

    tmp = 0;

    for (i=1; i<5; i=i+2){

    var tween3:Tween = new Tween(this._parent["im0"+i], "_x", Elastic.easeOut, this._parent["im0"+i]._x, this._parent["im0"+(i+1)]._x, 5, true);
    var tween4:Tween = new Tween(this._parent["im0"+(i+1)], "_x", Elastic.easeOut, this._parent["im0"+(i+1)]._x, this._parent["im0"+i]._x, 5, true);
    //loadMovie("04_img.jpg", this._parent["im0"+i]);
    tween3.onMotionFinished = function() {
    tmp = 1;
    //trace(tmp);
    }
    }
    }


    }


    function out():Void{

    }





    // Fine Definizione Funzioni
    //////////////////////////////////////////////////////////////////////////////////////////////////////////



    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    // Ingresso delle immagini e dei contenitori

    for (i=1; i<5; i++){


    var mci:MovieClip = this.attachMovie("im0"+i+"_mc", "im0"+i, 500+i);

    var tween2:Tween = new Tween(this["im0"+i], "_x", Elastic.easeOut, 900, (this.mci._width) * i, 4, true);
    loadMovie("0"+i+".jpg", this["im0"+i]);


    mci._y = 202;

    tween2.onMotionFinished = function() {
    intro = 1;
    trace("W");
    }
    this["im0"+i].onRollOver = rollover;
    }
    Zona - alias Danesi

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.