Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente bannato
    Registrato dal
    May 2010
    Messaggi
    16

    caricamento in stage swf da MySql

    Ciao a tutti.
    Non mi dilungo sul fatto che sono un principiante e bla...bla... cmq fino ad ora ho trovato tutte le risposte che mi servivano girando nel www, mò però non riesco a risolvere e chiedo aiuto.
    devo caricare clip di un certo peso che ho memorizzato su un DB MySql e il tempo di attesa "sembra" snervante, anche se di pochi secondi, ma senza un avviso di caricamento sembra tutto bloccato.
    Gli ho messo un preloader, ma si avvia quando il clip e già tutto in locale, quindi non serve a nulla (succede lo stesso anche se lo carico da file swf), quindi volevo realizzare un swf di preload che richiama quello effettivo (letto da MySql) ma non riesco a risolvere
    in pratica la sequenza dovrebbe eseere:
    1-caricamento pagina html
    2-da html richiamare un file swf di preload
    3-il file swf di preload dovrebbe richiamare uno script php che gli ritorni il clip finale
    4-lo scrip php deve estrarre dal db MySql il clip e ritornarlo
    5-lo swf dovrebbe sbattere il dato di ritorno sullo stage e evidenzziarlo

    fino al punto 4 no prob, lo swf riprende il controllo (punto 5) ma se cerco di tratare il dato và in errore.
    il PHP ritorna il dato con un header 'application/x-shockwave-flash ' ma non sò come definire il campo ricevente in FLASH AS3, ne ho provate di ogni ma sempre errore.
    il PHP funziona perfettamente se richiamato da HTML.
    spero di aver spiegato bene la mia esigenza e scusate se mi sono un po' dilungato.
    Vi prego datemi una mano
    codice:
    import flash.events.*;
    import flash.net.*;
    
    
    var richiamo:URLRequest = new URLRequest;			// variabile Post per php
    richiamo.url = "http://....php";                            // richiamo script PHP
    
    richiamo.method = URLRequestMethod.POST;			// metodo parametri post
    var idSlide:URLVariables = new URLVariables("id=21");
    
    richiamo.data = idSlide; 				// parametro da inviare
    
    var loader:URLLoader = new URLLoader();		// agente per l'invio della richiesta a PHP
    loader.dataFormat = URLLoaderDataFormat.BINARY;		// codifica url per invio dati
    loader.addEventListener(Event.COMPLETE, risultato);	// evento per intercettare il risultato
    
    loader.load(richiamo);					// esecuzione richiesta a PHP
    
    
    function risultato(evt:??????? ):void
    {
    	trace("----PHP ha finito-----");
    ------------------------BUIO COMPLETO----------------------
    }

  2. #2
    Utente bannato
    Registrato dal
    May 2010
    Messaggi
    16

    aggiungo info

    Vi aggiungo qualche altra info

    nel codice di ricezione ho aggiunto alcune info di trace:
    codice:
    function risultato(evt:Event):void
    {
    	trace("----PHP ha finito-----");
    	trace (loader.bytesLoaded);
    	trace (loader.data);
    
    	addChild(loader.data);
    }
    
    l'output di flash:
    
    ----PHP ha finito-----
    2218608                                                 : esattamente la dimensione del file
    CWS
    h"
                   l'errore che dà la addChild  è  :bhò: 
    TypeError: Error #1034: Assegnazione di tipo forzata non riuscita: impossibile convertire "CWS                                                     : è l'inizio del file per cui è giusto
    h" in flash.display.DisplayObject.
    	at Slide_fla::MainTimeline/risultato()
    	at flash.events::EventDispatcher/dispatchEventFunction()
    	at flash.events::EventDispatcher/dispatchEvent()
    	at flash.net::URLLoader/onComplete()
    spero che qualche buon'anima mi dia una mano

  3. #3
    le buon anime sono i morti...

    quindi ti rispondo da morto:
    mi sembra che ti complichi troppo la vita, in fondo il tempo di download hai detto che è poco, quindi basta che scrivi semplicemente un loading o frase del genere in scaricamento. Non è obbligatorio sapere esattamente e sempre a che punto si è col loading, mentre si, ti do ragione, è importante non aspettare in vano.

  4. #4
    Utente bannato
    Registrato dal
    May 2010
    Messaggi
    16

    una la soluzione tanpone ce l'ho

    Le clip hanno una dimensione variabile, e sono molte, quindi le ho messe sul DB.
    Quando aspetti il load sembra che il tempo non passi mai, e i secondi di cui parlavo sono pochi (dai 7 ai 10) per quelli che come me hanno la fibra, ma chi scarica più lento può aspettare parecchio, senza sapere cosa succede.
    cmq per ora ho risolto creando file swf temporanei che vengono richiamati da un swf di preload, ma è una soluzione che, anche se efficace, non mi piace.
    Ma è possibile che mentre il load del file si accorge di caricare una clip, non ci sia un metodo as3 per convertire dati in oggetti e quindi in clip e utilizzarli nello stage.

  5. #5
    Utente bannato
    Registrato dal
    May 2010
    Messaggi
    16

    risolto

    Ho visto che l'interesse per l'argomento non è altissimo
    tuttavia vi metto la soluzione, magari a qualcuno può interessare.
    la soluzione è piuttosto banale, e mi è venuta in mente pensando a come flash poteva riconoscere i file movie clip e le immagini da altri non trattabili.
    quindi ho provato a chiamare il codice php con loader.Load che è il metodo per richiamare files, anzichè loader.URLLoad e nel codice PHP prima dell'istruzione echo, ho inserito l'identificativo mime di quello che sta spedendo,
    header('Content-Type: application/x-shockwave-flash');

    in questo modo flash riconosce quello che gli arriva come una clip e lo tratta come tale.

    ciauz

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.