Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    176

    Caricare variabile da database

    Salve a tutti!
    Ho scorazzato a destra e a manca sul forum e so che questo è un argomento "caldo", ma sono costretto a chiedere il vostro aiuto..

    Sto provando a far caricare una variabile da un file php esterno e non riesco a capire dove sbaglio.

    ecco il codice in flash 8 che vorrei ottimizzare:
    codice:
    var slideShow:Function = function (target:MovieClip, shifting:Number) {
    	var mclo:MovieClipLoader = new MovieClipLoader();
    	var mcli:Object = new Object();
    	var index:Number = 1;
    	mcli.onLoadProgress = function(target:MovieClip, lbytes:Number, tbytes:Number) {
    		trace("Caricamento..."+Math.floor((lbytes/tbytes)*100)+"%");
    	};
    	mcli.onLoadError = function(target:MovieClip, errorCode:String) {
    		if (errorCode == "URLNotFound") {
    			slideShow(target, shifting);
    		}
    	};
    	mcli.onLoadInit = function(target:MovieClip):Void  {
    		index++;
    		var t:Object = new mx.transitions.Tween(target, "_alpha", mx.transitions.easing.None.easeNone, 0, 100, 2, true);
    		t.onMotionFinished = function() {
    			var a = setInterval(function () {
    				clearInterval(a);
    				var t:Object = new mx.transitions.Tween(target, "_alpha", mx.transitions.easing.None.easeNone, 100, 0, 2, true);
    				t.onMotionFinished = function() {
    					mclo.loadClip("img/slideshow11/slide11-"+index+".jpg", target);
    				};
    			}, shifting*1000);
    		};
    	};
    	mclo.addListener(mcli);
    	mclo.loadClip("img/slideshow11/slide11-"+index+".jpg", target);
    };
    var test:MovieClip = _level0.createEmptyMovieClip("test", 1);
    test._x = 10;
    test._y = 84;
    //il secondo parametro indica i secondi di permanenza su scherma della singola immagine
    slideShow(test,100);
    E' una slideshow che carica un file "slide11-1.jpg".
    Io vorrei che il numero 11 diventasse una variabile "id" e che fosse caricato da un file php esterno.
    Ho così inserito questo codice subito dopo "var index:Number = 1;":

    codice:
    // dichiaro la variabile 
    var id = new String(); 
    // ora preparo il caricamento del file php 
    var carica = new LoadVars(); 
    carica.onLoad = function(success) { 
        if(success) { 
            _root.id = this["id"]; 
            trace(id); 
        } 
        else { 
            trace("Errore nel caricamento file!"); 
        } 
    } 
    carica.load("prova.php");
    e ho modificato il percorso in ("img/slideshow"+id+"/slide"+id+"-"+index+".jpg", target);

    Il file php è un semplice:
    codice:
    &id=12&
    e l'ho messo nella stessa directory del file swf.

    L'errore che ottengo è questo:
    codice:
    Error opening URL "file:///C|/img/slideshow/slide-1.jpg"
    Ovvero, non viene assolutamente considerata la variabile!
    Non capisco dove sbaglio se nel php o nel codice AS.. o in tutti e 2
    Qualcuno mi può dare una dritta?
    Grazie!

  2. #2
    prova con

    // ora preparo il caricamento del file php
    var carica = new LoadVars();
    carica.onLoad = function(success) {
    if(success) {
    _root.id = this.id;
    trace(id);
    }
    else {
    trace("Errore nel caricamento file!");
    }
    }
    carica.load("prova.php");

    oppure

    // ora preparo il caricamento del file php
    var carica = new LoadVars();
    carica.onLoad = function(success) {
    if(success) {
    _root.id = carica.id;
    trace(id);
    }
    else {
    trace("Errore nel caricamento file!");
    }
    }
    carica.load("prova.php");


    poi x provare magari metti una casella di testo dinamica sullo stage con var proprio id e vedi se carica la var

    ovviamente tutta l'altra parte dello script dovrà essere eseguita dopo che questa var è stata caricata altrimenti è ovvio che nn viene considerata
    cioè la chiamata dell'altro codice 8anche se nn l'ho letto) dovrebbe avvenire nel succes del loadvars

    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    176
    Grazie Crescenzo per il tuo intervento!
    Ho provato con i tuoi codici ma purtroppo non funzionano.
    Ho verificato e la variabile viene caricata.
    Hai ragione, so che il codice deve andare nel success del loadvars ma non mi sbaglio in qualche punto.

    Questo è il codice che sto usando:
    codice:
    var slideShow:Function = function (target:MovieClip, shifting:Number) {
    	var mclo:MovieClipLoader = new MovieClipLoader();
    	var mcli:Object = new Object();
    	// ora preparo il caricamento del file php 
    	var carica = new LoadVars(); 
    	carica.onLoad = function(success) { 
    	if(success) { 
    	_root.id = carica.id;
    	trace(id); 
    	} 
    	else { 
    	trace("Errore nel caricamento file!"); 
    	} 
    	} 
    	carica.load("prova.php");
    
    	var index:Number = 1;
    	mcli.onLoadProgress = function(target:MovieClip, lbytes:Number, tbytes:Number) {
    		trace("Caricamento..."+Math.floor((lbytes/tbytes)*100)+"%");
    	};
    	mcli.onLoadError = function(target:MovieClip, errorCode:String) {
    		if (errorCode == "URLNotFound") {
    			slideShow(target, shifting);
    		}
    	};
    	mcli.onLoadInit = function(target:MovieClip):Void  {
    		index++;
    		var t:Object = new mx.transitions.Tween(target, "_alpha", mx.transitions.easing.None.easeNone, 0, 100, 2, true);
    		t.onMotionFinished = function() {
    			var a = setInterval(function () {
    				clearInterval(a);
    				var t:Object = new mx.transitions.Tween(target, "_alpha", mx.transitions.easing.None.easeNone, 100, 0, 2, true);
    				t.onMotionFinished = function() {
    					mclo.loadClip("img/slideshow"+id+"/slide"+id+"-"+index+".jpg", target);
    				};
    			}, shifting*1000);
    		};
    	};
    	mclo.addListener(mcli);
    	mclo.loadClip("img/slideshow"+id+"/slide"+id+"-"+index+".jpg", target);
    };
    var test:MovieClip = _level0.createEmptyMovieClip("test", 1);
    test._x = 10;
    test._y = 84;
    //il secondo parametro indica i secondi di permanenza su scherma della singola immagine
    slideShow(test,100);
    Ovviamente non è corretto dato che lo script per il caricamento dell'immagine è fuori dal success.
    Se però lo porto dentro così:
    codice:
    var slideShow:Function = function (target:MovieClip, shifting:Number) {
    	var mclo:MovieClipLoader = new MovieClipLoader();
    	var mcli:Object = new Object();
    	// ora preparo il caricamento del file php 
    	var carica = new LoadVars(); 
    	carica.onLoad = function(success) { 
    	if(success) { 
    	_root.id = carica.id;
    	trace(id); 
    	var index:Number = 1;
    	mcli.onLoadProgress = function(target:MovieClip, lbytes:Number, tbytes:Number) {
    		trace("Caricamento..."+Math.floor((lbytes/tbytes)*100)+"%");
    	};
    	mcli.onLoadError = function(target:MovieClip, errorCode:String) {
    		if (errorCode == "URLNotFound") {
    			slideShow(target, shifting);
    		}
    	};
    	mcli.onLoadInit = function(target:MovieClip):Void  {
    		index++;
    		var t:Object = new mx.transitions.Tween(target, "_alpha", mx.transitions.easing.None.easeNone, 0, 100, 2, true);
    		t.onMotionFinished = function() {
    			var a = setInterval(function () {
    				clearInterval(a);
    				var t:Object = new mx.transitions.Tween(target, "_alpha", mx.transitions.easing.None.easeNone, 100, 0, 2, true);
    				t.onMotionFinished = function() {
    					mclo.loadClip("img/slideshow"+id+"/slide"+id+"-"+index+".jpg", target);
    				};
    			}, shifting*1000);
    		};
    	};
    	mclo.addListener(mcli);
    	mclo.loadClip("img/slideshow"+id+"/slide"+id+"-"+index+".jpg", target);
    };
    var test:MovieClip = _level0.createEmptyMovieClip("test", 1);
    test._x = 10;
    test._y = 84;
    //il secondo parametro indica i secondi di permanenza su scherma della singola immagine
    slideShow(test,100);
    } 
    	else { 
    	trace("Errore nel caricamento file!"); 
    	} 
    	} 
    	carica.load("prova.php");
    mi dà il seguente errore:
    codice:
    **Errore** Scena=Scena 1, livello=Livello 1, fotogramma=1:Linea 44: Rilevato 'else' senza corrispondente 'if'
    ma a me sembra che le parentesi siano giuste..
    Che ne dici/dite?
    Grazie!

  4. #4
    >Ho provato con i tuoi codici ma purtroppo non funzionano.
    cioè nn carica la var con il cod che ti ho postato...mi sembra strano


    potresti invece fare in questo modo

    mettere tutto quel cod della slide dentro ad una funzione

    function slide(){

    //tuo cod
    .....
    ...

    }


    e poi nel success richiamare la funzione

    var mcli:Object = new Object();
    // ora preparo il caricamento del file php
    var carica = new LoadVars();
    carica.onLoad = function(success) {
    if(success) {
    _root.id = carica.id;
    trace(id);
    slide();
    }
    else {
    trace("Errore nel caricamento file!");
    }
    }
    carica.load("prova.php");


    cosi almeno nn dovresti avere problemi di parentesi..etc
    prova un pò



    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    176
    Ciao Crescenzo!
    Grazie per avermi aiutato!
    Prima che mi rispondessi avevo già trovato una soluzione funzionante che però non mi convince in pieno nel codice.. mi dirai "funziona, che te ne importa!"..
    Mah, ho raggiunto il risultato in un modo un po' fortunoso. Lo prova il fatto che anche usando il metodo che mi hai suggerito non funziona più.

    codice:
    	var slideShow:Function = function (target:MovieClip, shifting:Number) {
    	var mclo:MovieClipLoader = new MovieClipLoader();
    	var mcli:Object = new Object();
    	
    	// ora preparo il caricamento del file php 
    	var carica = new LoadVars(); 
    	carica.onLoad = function(success) { 
    	if(success) { 
    	_root.id = carica.id;
    	trace(id); 
    	loadmclo.loadClip("img/immobili/immobile"+id+"/immobile"+id+"-"+index+"_low.jpg", target);
    	} 
    	else { 
    	trace("Errore nel caricamento del file!"); 
    	} 
    	} 
    	carica.load("prova.php");
    
    	var index:Number = 1;
    	mcli.onLoadProgress = function(target:MovieClip, lbytes:Number, tbytes:Number) {
    		trace("Caricamento..."+Math.floor((lbytes/tbytes)*100)+"%");
    	};
    	mcli.onLoadError = function(target:MovieClip, errorCode:String) {
    		if (errorCode == "URLNotFound") {
    			slideShow(target, shifting);
    		}
    	};
    	mcli.onLoadInit = function(target:MovieClip):Void  {
    		index++;
    		var t:Object = new mx.transitions.Tween(target, "_alpha", mx.transitions.easing.None.easeNone, 0, 100, 2, true);
    		t.onMotionFinished = function() {
    			var a = setInterval(function () {
    				clearInterval(a);
    				var t:Object = new mx.transitions.Tween(target, "_alpha", mx.transitions.easing.None.easeNone, 100, 0, 2, true);
    				t.onMotionFinished = function() {
    					mclo.loadClip("img/immobili/immobile"+id+"/immobile"+id+"-"+index+"_low.jpg", target);
    				};
    			}, shifting*1000);
    		};
    	};
    	mclo.addListener(mcli);
    	mclo.loadClip("img/immobili/immobile"+id+"/immobile"+id+"-"+index+"_low.jpg", target);
    };
    var test:MovieClip = this.mc.createEmptyMovieClip("test", 1);
    test._x = 0;
    test._y = 0;
    //il secondo parametro indica i secondi di permanenza su scherma della singola immagine
    slideShow(test,3);
    Ti convince questo codice? Anche se è funzionante?

  6. #6
    beh sinceramente il cod nn mi convince molto

    anche se con questo
    loadmclo.loadClip("img/immobili/immobile"+id+"/immobile"+id+"-"+index+"_low.jpg", target);

    alla fine carichi l'img solo quando hai ricevuto la var ( e la cosa è giusta)

    ma hai provato online se va bene?? (penso che dovrebbe andare bene)

    xchè le prove in locale nn sempre sono affidabili dato che si deve considerare i tempi di caricamento dei dati

    alla fine se funge ..che dire usa quello

    il fatto che mi sembra strano e che come ti avevo detto nn ti funge cosa?
    la var almeno la carica?

    poi per poter fare delle prove avrei bisgono del file ....eheh solo che in questo periodo sono troppo incasinato e passo di qua solo in momenti i cui ho voglia di sbariare ....


    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    176
    Ho ragionato un bel po' e alla fine questo codice penso che sia corretto sotto ogni aspetto:
    codice:
    function slide(){
    	
    	var slideShow:Function = function (target:MovieClip, shifting:Number) {
    	var mclo:MovieClipLoader = new MovieClipLoader();
    	var mcli:Object = new Object();
    	var index:Number = 1;
    	mcli.onLoadProgress = function(target:MovieClip, lbytes:Number, tbytes:Number) {
    		trace("Caricamento..."+Math.floor((lbytes/tbytes)*100)+"%");
    	};
    	mcli.onLoadError = function(target:MovieClip, errorCode:String) {
    		if (errorCode == "URLNotFound") {
    			slideShow(target, shifting);
    		}
    	};
    	mcli.onLoadInit = function(target:MovieClip):Void  {
    		index++;
    		var t:Object = new mx.transitions.Tween(target, "_alpha", mx.transitions.easing.None.easeNone, 0, 100, 2, true);
    		t.onMotionFinished = function() {
    			var a = setInterval(function () {
    				clearInterval(a);
    				var t:Object = new mx.transitions.Tween(target, "_alpha", mx.transitions.easing.None.easeNone, 100, 0, 2, true);
    				t.onMotionFinished = function() {
    					mclo.loadClip("img/immobili/immobile"+id+"/immobile"+id+"-"+index+"_low.jpg", target);
    				};
    			}, shifting*1000);
    		};
    	};
    	mclo.addListener(mcli);
    	mclo.loadClip("img/immobili/immobile"+id+"/immobile"+id+"-"+index+"_low.jpg", target);
    };
    var test:MovieClip = this.mc.createEmptyMovieClip("test", 1);
    test._x = 0;
    test._y = 0;
    //il secondo parametro indica i secondi di permanenza su scherma della singola immagine
    slideShow(test,3);
    }
    
    
    var mcli:Object = new Object();
    // ora preparo il caricamento del file php 
    var carica = new LoadVars(); 
    carica.onLoad = function(success) { 
    if(success) { 
    _root.id = carica.id;
    trace(id); 
    slide(); 
    } 
    else { 
    trace("Errore nel caricamento file!"); 
    } 
    } 
    carica.load("prova.php");
    Non l'ho provato on-line ma solo sul server virtuale.. penso comunque che funzioni. In caso contrario lo segnalerò.

    Il grosso problema che ho adesso è quello di inviare la variabile dalla pagina php a Flash!
    Qualche idea?

  8. #8
    >Il grosso problema che ho adesso è quello di inviare la variabile dalla pagina php a Flash!
    Qualche idea?


    cioè nn ho capito

    non lo avevi fatto già?
    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    176
    L'avevo fatto in via sperimentale, non con la pagina effettiva.
    Sto facendo delle prove.. ti terrò aggiornato.
    Grazie di tutto!

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    176
    Ho risolto facendo scrivere alla pagina php un file di testo che viene letto dal filmato flash forzando quest'ultima a leggere sempre il file aggiornato e non quello nella cache.

    Pagina php

    codice:
    $filename = file.txt';
    $somecontent = "header(\"Expires: Mon, 26 Jul 1997 05:00:00 GMT\");\n
    header(\"Last-Modified: \".gmdate(\"D, d M Y H:i:s\").\" GMT\");\n
    header(\"Cache-Control: no-store, no-cache, must-revalidate\");\n
    header(\"Cache-Control: post-check=0, pre-check=0\", false);\n
    header(\"Pragma: no-cache\");\n/
    &id=$id&";
    $handle = fopen($filename, 'w+');
    !fwrite($handle, $somecontent);
    AS

    codice:
    file="file.txt"; 
    carica.load(file+"?rnd=" + random(999999));

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.