Pagina 4 di 5 primaprima ... 2 3 4 5 ultimoultimo
Visualizzazione dei risultati da 31 a 40 su 43
  1. #31
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Si, l'oggetto di inizializzazione è il corrispondente via script del pannello "Component parameters"

  2. #32
    quindi ci rifacciamo ai componenti :tongue: poi proverò anche a creare il pannello "Component Parameters" ma devo dirti la verità ancora non l'ho visto bene...

  3. #33
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Una cosa per volta (d'altronde abilitare il pannello è molto semplice). Ne parliamo quando ti senti sicuro di queste cose qui.. :)

  4. #34
    ho un piccolo problema!

    sto all'interno dell'evento onLoad di LoadVars, dentro un metodo della mia classe, ora il mio problema è che non riesco a richiamare un metodo della mia classe, visto che lui con this si riferisce all'oggetto loadVars, e neanche se faccio _parent.miometodo non funziona! che devo fare??

    codice:
    this.loadVarsObject.onLoad = function() {
    			this.result = new Serializer().unserialize(this.result);
    			switch (typeof (targetClip)) {
    			case "string" :
    				trace("STRING");
    				_parent.createObjects(targetClip, path, arrayArgs);
    				break;
    			default :
    				targetClip.result = this.result;
    			}
    		};

  5. #35
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    codice:
    // salva un riferimento al componente
    this.loadVarsObjcet.path = this;
    this.loadVarsObject.onLoad = function() 
    {
    	this.result = new Serializer().unserialize(this.result);
    	switch (typeof (targetClip)) {
    		case "string" :
    			trace("STRING");
    			// usa il riferimento
    			this.path.createObjects(targetClip, path, arrayArgs);
    			break;
    		default :
    			targetClip.result = this.result;
    	}
    };

  6. #36
    grande funziona!!!!

    Sto facendo una classe carina... sicuramente ci saranno molti errori, ma come idea mi piace e sembra ritornare davvero utile.... tra un pò la posto!

  7. #37

    eccola!

    Scusa , ma ero uscito, ora ho perso un pò di tempo per commentarla, fammi sapere!

    Naturalmente è tutta da rivedere, soprattutto per il controllo dei paramteri cmq sembr afunzionare alla grande!!!

    E' la mia prima classe "semi seria in flash"
    codice:
    // includo le azioni dove è definita la classe Serializer (sephiroth.it) che serializza oggetti o array di oggetti da passare al server
    // e li unserializza in ricezione ricreando gli stessi oggetti che ho creato sul server
    
    #include "serializerClass.as"
    
    /* 	=========================================
    	Uso
    	
    	myServerConnection = new ServerConnection ( paginaServer, LoadVarsConnection[, metodo [, oggettoParametri [, targetHtml]]]);
    	
    	metodi pubblici
    	
    	myServerConnection.serverConnect([ linkage/istanza_ClipTarget [, pathClipTarget [, startX [, startY [, startdepth [, interval [, xOffset [, yOffset [, option1...optionN]]]]]]]]]);
            
            proprietà
            
            myServerConnection.objectCreated --> settato a true quando la duplicazione/assegnazione dei dati è terminata
    	myServerConnection.arrayObjects --> un array che contiene i riferimenti a tutti i clip creati, o cmq i clip dove risiedono i risultati della comunicazione
    
    	=========================================*/
    
    // costruttore della classe
    _global.ServerConnection = function() {
    	this.objectCreated = false;
    	this.arrayObjects = new Array();
    	this.serverPage = arguments[0];
    	this.connection = arguments[1];
    	if (arguments[2] != "") {
    		this.method = arguments[2];
    	}
    	this.loadVarsObject = new LoadVars();
    	// se esiste il parametro oggettoParametri
    	if (arguments[3]) {
    		// lo serializzo (SerializerClass da sephiroth.it) per passarlo al server dove a sua volta sarà unserializzato 
    		this.loadVarsObject.params = new Serializer().serialize(arguments[3]);
    		unescape(this.loadVarsObject.params);
    	}
    	if (arguments[4] != "") {
    		this.targetHtml = arguments[4];
    	}
    };
    
    // metodo privato che istanzia i clip associando loro l'oggetto restituito dal server
    ServerConnection.prototype.createObjects = function(targetClip, path, arrayArgs) {
    	// ciclo l'array di oggetti (recordset) che restituisce il server
    	for (var a = 0; a<this.loadVarsObject.result.length; a++) {
    		if (this.loadVarsObject.result[a]) {
    			// creo sul percorso specificato i clip "contenitore"
    			path.attachMovie(targetClip, targetClip+a, a+arrayArgs["startDepth"], this.initObject(arrayArgs, a));
    			// associo l'oggetto corrente al clip creato
    			path[targetClip+a].LoadedData = this.loadVarsObject.result[a];
    			// aggiungo il riferimento del clip creato all'array "arrayObjects"
    			this.arrayObjects.push(path[targetClip+a]);
    		}
    	}
    	// se ho creato almeno un clip setto a true la proprietà objectCreated
    	if (this.arrayObjects.length>0) {
    		this.objectCreated = true;
    	}
    };
    
    // metodo che costruisce l'oggetto di inizializzazione per i clip da "attaccare"
    ServerConnection.prototype.initObject = function(arrayArgs, a) {
    	var initObject = {};
    	initObject._x = arrayArgs["xOffset"]*a+arrayArgs["startX"];
    	initObject._y = arrayArgs["yOffset"]*a+arrayArgs["startY"];
    	initObject.interval = arrayArgs["interval"]*a;
    	//oltre alle proprietà di default posso associare ai clip n opzioni (anche oggetti o riferimenti) che posso utilizzare ad esempio in una funzione di inizializzazione del clip stesso
    	for (var cont = 8; cont<arrayArgs.length; cont++) {
    		initObject["option"+(cont-7)] = arrayArgs[cont];
    	}
    	return (initObject);
    };
    ServerConnection.prototype.serverConnect = function() {
    	// se c'è almeno un argomento ... qui si può migliorare (ma non solo qui)... li associo all'array associativo che passerò al metodo createObjects()
    	if (arguments[0] != "") {
    		var arrayArgs = new Array();
    		var targetClip = arguments[0];
    		var path = arguments[1];
    		arrayArgs["startX"] = arguments[2];
    		arrayArgs["startY"] = arguments[3];
    		arrayArgs["startDepth"] = arguments[4];
    		arrayArgs["interval"] = arguments[5];
    		arrayArgs["xOffset"] = arguments[6];
    		arrayArgs["yOffset"] = arguments[7];
    		for (var cont = 8; cont<arguments.length; cont++) {
    			arrayArgs[cont] = arguments[cont];
    		}
    	}
    	this.loadVarsObject.path = this;
    	// controllo il tipo di connessione da effettuare per l'oggetto corrente
    	switch (this.connection) {
    	case "sendAndLoad" :
    		this.loadVarsObject.sendAndLoad(this.serverPage, this.loadVarsObject, this.method);
    		this.loadVarsObject.onLoad = function() {
    			// associo a result nell'oggetto LoadVars creato l'oggetto serializzato restituito dal server che unserializzo ricavando l'oggetto utilizzabile
    			this.result = new Serializer().unserialize(this.result);
    			// controllo il "type" del primo parametro del metodo corrente 
    			switch (typeof (targetClip)) {
    			// se il parametro è una stringa allora è un linkage di movie clip quindi richiamo il metodo createObjects
    			case "string" :
    				this.path.createObjects(targetClip, path, arrayArgs);
    				break;
    			// altrimenti il parametro sarà un riferimento ad un'oggetto o clip a cui associo semplicemente l'oggetto restituito dal server
    			default :
    				targetClip.result = this.result;
    				this.objectCreated = true;
    			}
    		};
    		break;
    	case "send" :
    		this.loadVarsObject.send(this.serverPage, this.targetHtml, this.method);
    		break;
    	case "load" :
    	    //come sopra per sendAndLoad
    		this.loadVarsObject.load(this.serverPage);
    		this.loadVarsObject.onLoad = function() {
    			this.result = new Serializer().unserialize(this.result);
    			switch (typeof (targetClip)) {
    			case "string" :
    				this.path.createObjects(targetClip, path, arrayArgs);
    				break;
    			default :
    				targetClip.result = this.result;
    				this.objectCreated = true;
    			}
    		};
    	}
    };
    // 	=============================================== ESEMPI
    
    // utilizzo il metodo LOAD, non specifico quindi alcun parametro da passare al server e neanche metodo e targetHtml
    
    conduttori = new ServerConnection("serialize_conduttori.txt", "load");
    
    // mi connetto e duplico il clip "mioClip" linkato nella libreria tante volte quanti sono i risultati, il primo starà a 100,100 li
     duplico a partire dal livello di profondità 100 a salire, l'offset è di 50 px sull'asse x, assegno un offset di delay tra un clip e
     un'altro di 500 ms da utilizzare nelle azioni del clip, associo anche delle opzioni che posso utilizzare ad esempio così 
    _rotation=option1(45) _visible=option2(true) sempre nelle azioni del clip
    
    conduttori.serverConnect("mioClip", _root, 100, 100, 100, 500, 0, 50, 45, true);
    
    // creo l'oggetto da passare al server 
    
    parametri = Array();
    parametri["query"] = "select * from party";
    
    // Dovendo comunicare con SENDANDLOAD specifico il metodo di comunicazione e l'oggetto parametri da passare al server 
    
    speakers = new ServerConnection("serialize_conduttori.php", "sendAndLoad", "POST", parametri);
    
    // per quanto riguarda i risultati mi comporto come l'oggetto precedente
    
    speakers.serverConnect(_root.mioClip, _root, 200, 40, 50, 500, 0, 50, 45, true);
    
    // creo l'oggetto da passare al server 
    search= Array();
    search["key"]=12;
    serach["table"]="speakers"
    
    // Comunico al server l'oggetto search e setto anche il targetHtml a _blank per visualizzare il metodo è send visualizza i risultati in un altro frame (finestra) specifico anche l'oggetto parametri
    
    ricerca = new ServerConnection
    ("serialize_conduttori.php", "send", "POST", parametri, "_BLANK");
    
    // non dovendo visualizzare i risultati in flash non devo specificare parametri al metodo serverConnect();
    
    ricerca.serverConnect();

  8. #38
    Ciao Nega!
    ti ho mandato un file con l'esercizio... ora a parte la classe che sarà da da aggiustare sicuramente, il fatto è che cmq la dovrò utilizzare per un lavoro che sto facendo, e sembra
    gia funzionare abbastanza :=) mi hai dato l'input giusto per iniziare davvero a fare le cose
    nel modo corretto!

    Io avevo pensato di associare la classe (come abbiamo fatto ieri) a tutti i controller di tutti
    i gruppi di clip caricati...

    Dicevo io volevo associare a tutti questi controller in questo modo:

    creo una classe controller, che gestirà l'apertura chiusura dei clip, l'apertura ereditando i
    metodi da ServerConnection, la nuova classe erediterà anche i metodi di MovieClip, ai clip
    creati invece voglio associare una classe che ne gestisce il movimento sullo stage.


    Per questa classe devo capire bene cosa mi servirà perchè la vorrò riutilizzare sempre

    Secondo te da quale mi conviene iniziare??

    Ieri ho avuto un problema però, se associavo una classe al clip "contenitore come abbiamo
    fatto ieri, non riuscivo ad assegnare il valore al campo "titolo.text" nella funzione init();...
    strano vero? ho infatti abbozzato delle semplici istruzioni del clip tanto per controllare il
    funzionamento!

    Ciao

  9. #39
    La cosa che al momento vedo subito di sbagliato è il controlle dei paramteri sia per il costruttore che per la funzione pubblica, dovrò fare in modo che restituiranno
    false se i parametri sono errati... tu che dici? però non ho capito come controllare ad esempio se ho passato l'oggetto "parametri" if (arguments[3]) ... faccio un
    pò di confusione coi dati e i confronti , ultimamente sto lavorando molto su php ... cmq gia ho fatto un bel ripasso generale... era quello che ci voleva!
    su php ad esempio ho if (isArray(variabile)) ... isNumeric ecc ecc.. qua c'è NaN poi??

    Poi ho un'altra perplessità... si parla di funzioni pubbliche e private... ma in flash esiste davvero questa differenza? perchè se uno conosce la classe in teoria potrebbe
    richiamare anche i metodi "privati" m,a che per come li ho fatti io in realtà privati non sono!

  10. #40
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Beh, innanzitutto io non userei l'array arguments, per mille questioni compresa la leggibilità (si usa per altri motivi):

    codice:
    // costruttore della classe
    _global.ServerConnection = function(serverPage, connection, method, params, targetHtml)
    {
    	this.objectCreated = false;
    	this.arrayObjects = new Array();
    	this.serverPage = paginaServer;
    	this.connection = connection;
    	if(method != undefined)this.method = method;
    
    	this.loadVarsObject = new LoadVars();
    	// se esiste il parametro oggettoParametri
    	if(params != undefined){
    		// lo serializzo (SerializerClass da sephiroth.it) per passarlo al 
    		// server dove a sua volta sarà unserializzato 
    		this.loadVarsObject.params = new Serializer().serialize(params);
    		unescape(this.loadVarsObject.params);
    	}
    	if(targetHtml != undefined)this.targetHtml = targetHtml;
    };

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 © 2026 vBulletin Solutions, Inc. All rights reserved.