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

    [MX] assegnazione Funzioni per FX Cubi 3D

    Ciao a tutti mi sto incartando

    ho un semplicissimo menu composto da un testo che appare se si attiva il relativo cubo 3D

    il tutto funziona perfettamente con questo script

    codice:
    onClipEvent(load){
    	// var controllo movimento, scalatura, rotazione
    	mov=false
    	giu=false
    	mystop=false
    	myparent="txt"+substring(_name,5,1);
    }
    
    onClipEvent(mouseMove){
    	if(this.hitTest(_root._xmouse,_root._ymouse,false)){
    		mov=true; _root[myparent].nextFrame()
    	}else{
    		mov=false;
    	}
    }
    
    onClipEvent(mouseDown){
    	if(this.hitTest(_root._xmouse,_root._ymouse,false)){
    		click=true;
    	}else{
    	    click=false;
    	}
    }
    
    onClipEvent(enterFrame){
    //---------------------
    
    if(mov){
    	if(giu){
        	if(_xscale>10){_yscale=_xscale-=5;_rotation+=10;_y-=5;_x-=5}
    		else{giu=false}
    	}
    	if(!giu){
        	if(_xscale<50){_yscale=_xscale+=5;_rotation-=10;_y+=5;_x+=5}
    		else{giu=true}
    	}
    }
    if(mystop){
    	    if(_xscale>10){_yscale=_xscale-=5;_rotation+=10;_y-=5;_x-=5}
    		else{mystop=false;_root[myparent].prevFrame()}
    	}
    }

    sto tentando di creare un ciclo FOR per l'assegnazione degli eventi di cui sopra, affinchè non debba ripetere tutte le AS su ogni cubo

    ma il seguente script NON FUNZIONA ?? mi aiutereste a capire dov'è che TOPPO

    codice:
    for(i=1; i<=3; i++){
    	nome="cubo"+i
    	_root[nome].onLoad=function(){
    		mov=false
    		giu=false
    		mystop=false
    		myparent="txt"+substring(_name,5,1);
    	}
    
    	_root[nome].onMouseMove=function(){
    		if(this.hitTest(_root._xmouse,_root._ymouse,false)){
    			mov=true; _root[myparent].nextFrame()
    		}else{
    			mov=false;
    		}
    	}
    	_root[nome].onMouseDown=function(){
    		if(this.hitTest(_root._xmouse,_root._ymouse,false)){
    			click=true;
    		}else{
    		    click=false;
    		}
    	}
    
    _root[nome].onEnterFrame=function(){
    		if(this.mov){
    			if(this.giu){
    		    	if(this._xscale>10){this._yscale=_xscale-=5;this._rotation+=10;this._y-=5;this._x-=5}
    				else{this.giu=false}
    			}
    			if(!this.giu){
        			if(this._xscale<50){this._yscale=this._xscale+=5;this._rotation-=10;this._y+=5;this._x+=5}
    				else{giu=true}
    			}
    		}
    		if(this.mystop){
    	    	if(this._xscale>10){this._yscale=this._xscale-=5;this._rotation+=10;this._y-=5;this._x-=5}
    			else{this.mystop=false;_root[myparent].prevFrame()}
    		}
    }
    }//end For

    Grazie

  2. #2

  3. #3
    Non ho mai capito bene il mc.onLoad, ma mi pare sia diverso dal 'vecchio' onClipEvent(load) di flash5, ti conviene fare così

    for(i=1; i<=3; i++){
    nome="cubo"+i
    _root[nome].mov=false
    _root[nome].giu=false
    _root[nome].mystop=false
    _root[nome].myparent="txt"+substring(_name,5,1);


    _root[nome].onMouseMove=function(){
    if(this.hitTest(_root._xmouse,_root._ymouse,false) ){
    mov=true; _root[myparent].nextFrame()
    }else{
    mov=false;
    }
    }
    _root[nome].onMouseDown=function(){
    if(this.hitTest(_root._xmouse,_root._ymouse,false) ){
    click=true;
    }else{
    click=false;
    }
    }

    _root[nome].onEnterFrame=function(){
    if(this.mov){
    if(this.giu){
    if(this._xscale>10){this._yscale=_xscale-=5;this._rotation+=10;this._y-=5;this._x-=5}
    else{this.giu=false}
    }
    if(!this.giu){
    if(this._xscale<50){this._yscale=this._xscale+=5;t his._rotation-=10;this._y+=5;this._x+=5}
    else{giu=true}
    }
    }
    if(this.mystop){
    if(this._xscale>10){this._yscale=this._xscale-=5;this._rotation+=10;this._y-=5;this._x-=5}
    else{this.mystop=false;_root[myparent].prevFrame()}
    }
    }
    }//end For

    Non so se ci siano altri possibili problemi, cominciamo provando così

  4. #4
    Grazie Broly
    ti rispondo più tardi, perchè ho già provato ma l'esito è identico

    non va.

  5. #5
    Uhm prova ad aggiungere anche i this dove non ci sono..ad esempio qua

    _root[nome].onMouseMove=function(){
    if(this.hitTest(_root._xmouse,_root._ymouse,false) ){
    mov=true;
    _root[myparent].nextFrame()
    }else{
    mov=false;
    }
    }

    Chiaramente non potendo provare vado per ipotesi

  6. #6
    OK commetto sempre il solito errore

    Prima devo fargli leggere le funzioni e poi le richiamo dal FOR


    così adesso va

    codice:
    _root.assegna=function(nome){
    	// inizializzazione Variabili
    	_root[nome].mov=false 
    	_root[nome].giu=false 
    	_root[nome].mystop=false 
    	_root[nome].myparent="txt"+substring(_root[nome]._name,5,1); 
    	
    	// controllo Movimento
    	_root[nome].onMouseMove=function(){ 
    		if(this.hitTest(_root._xmouse,_root._ymouse,false)){ 
    			_root[nome].mov=true; _root[_root[nome].myparent].nextFrame() 
    		}else{ 
    			_root[nome].mov=false; 
    		} 
    	} 
    	// Controllo Click
    	_root[nome].onMouseDown=function(){ 
    		if(this.hitTest(_root._xmouse,_root._ymouse,false)){ 
    			_root[nome].click=true; 
    		}else{ 
    			_root[nome].click=false; 
    		} 
    	} 
    	// Enter Frame
    	_root[nome].onEnterFrame=function(){ 
    		if(this.mov){ 
    			if(this.giu){ 
    				if(this._xscale>10){this._yscale=this._xscale-=5;this._rotation+=10;this._y-=5;this._x-=5} 
    				else{this.giu=false} 
    			} 
    			if(!this.giu){ 
    				if(this._xscale<50){this._yscale=this._xscale+=5;this._rotation-=10;this._y+=5;this._x+=5} 
    				else{this.giu=true} 
    			} 
    		} 
    		if(this.mystop){ 
    			if(this._xscale>10){this._yscale=this._xscale-=5;this._rotation+=10;this._y-=5;this._x-=5} 
    			else{this.mystop=false;_root[_root[nome].myparent].prevFrame()} 
    		} 
    	} 
    }// end function Assegna 
    
    
    // distribuzione Funzioni con For
    for(i=1; i<=3; i++){ 
    	nome="cubo"+i 
    	_root[nome].mov=false 
    	_root[nome].giu=false 
    	_root[nome].mystop=false 
    	_root[nome].myparent="txt"+substring(_name,5,1); 
        // richiamo assegnazione
    	_root.assegna(nome)
    }//end For

    Grazie comunque.

    Ciao

  7. #7
    Bhe ovviamente c'è una parte di codice duplicato che non serve.

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.