Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Inserire oggetti dinamicamente

    Ciao a tutti!
    Chiedo scusa per il post, forse è una cosa stupida, ma ho iniziato da poco col flash e soprattutto con Actionscript.
    Vorrei capire come fare ad aggiungere nuovi oggetti alla pagina dinamicamente.
    Ossia vorrei, dopo aver caricato da un db ad esempio una serie di foto o una serie di news, inserirle nella pagina.
    Mi basta capire il funzionamento, ad esempio come posso fare per far scrivere nella pagina "a mo di testo" le news e posizionarle in un determinato punto?
    Grazie
    Alessio
    Alessio_Programmer

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Parto con il presupposto che tu stia utilizzando Actionscript 1 o 2

    Si inizia da un po' lontano, ma in generale per gestire la parte visiva dei file flash si utilizzano due classi fondamentali, una è la classe MovieClip, ossia un oggetto visuale vuoto, dentro il quale è possibile inserire altri movieclip, caricare immagini ed altri swf esterni.
    La classe contiene inoltre una serie di metodi prestabiliti a cui è possibile assegnare azioni ed utilizzare i clip come pulsanti.

    La seconda classe particolarmente utilizzata è la classe TextField, che genera un campo di testo in cui è possibile incorporare i caratteri (preventivamente inseriti in libreria e linkati per essere utilizzati in runtime) formattare il testo, inserire alcuni tag html per formattazioni particolari e che è possibile utilizzare come base per creare campi scrollabili ecc...

    Esiste poi un terzo tipo di elementi che sono però maggiormente legati al Flash inteso come programma di creazione, e sono i Components.
    Si tratta di oggetti complessi creati dai programmatori Adobe/Macromedia, ne fanno parte ad esempio le TextArea, campi di testo già compresi di scrollbar, o gli ScrollPane, pannelli in cui è possibile caricare immagini ed swf, anch'essi già compresi di scrollbar qualora necessaria.

    Questa è la carrellata generale sulla tua richiesta, ma ovviamente necessita di un approfondimento in base a quello che effettivamente devi fare.

  3. #3
    Ciao,
    prima di tutto grazie mille per la risposta chiarissima e completa!
    Ora veniamo a quel che devo fare io:
    Ho un sito da fare in Flash e credo di mettere un DB MySql ed utilizzare PHP per interfacciare i due. Ora ho visto che si possono passare abbastanza facilmente i risultati di una query da PHP a Flash tramite il loadVar (mi sembra, o comunque qualcosa di simile).
    Vorrei se possibile capire come fare entrambi gli esempi. Sia caricare ad esempio una news dal db (quindi poniamo che ho gia le variabili con dentro i dati, per esempio titolo , testo per la news) e caricare una serie di immagini (quindi ho come variabile path che indica il path sul server della mia immagine).
    Potrei avere degli esempi di codice per inserire queste due cose?

    PS: aggiungo un'altro quesito di secondaria importanza. Ieri ho fatto un semplice menu fatto da me (quadrato colorato con dentro le scritte che di testo semplice che devono fungere da bottoni) e le scritte che appena aperto il sito entrano da molte direzioni variando l'alpha, quindi avendo un effetto dissolvenza.
    Ho fatto questo convertendo ogni scritta in Symbol di tipo movieclip e creando una Tween Motion nella loro animazione. Poi li ho convertiti in Symbol Button, ma il problema è che quando arrivano in posizione definitiva non fungono da bottoni. Sicuramente non ho capito qualche concetto base del flash

    Grazie Alessio
    Alessio_Programmer

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Considera che i dati, di qualsiasi tipo siano in php, devono essere inviati a flash sotto forma di querystring, perciò si tratterà di valori che flash percepirà comunque come stringa e che nel caso di necessità dovrai trasformare tu.
    Premesso questo, che tu stia inviando a flash il path di un'immagine o un testo da inserire in un textfield, il meccanismo non cambierà

    mettiamo ad esempio di inviare da php questa querystring: &imagepath=img/nome_immagine.jpg&

    in flash va innanzi tutto recuperata con LoadVars, poi all'interno dell'evento asincrono onLoad (che si verifica quando i dati esterni sono stati recuperati) si effettuano le azioni che utilizzano quella variabile:

    Codice PHP:
    // creo un nuovo oggetto LoadVars
    var myLV:LoadVars = new LoadVars();
    // assegno al mio oggetto una variabile che mi servirà
    // per aggirare lo "scope" all'interno della funzione onLoad
    myLV.path this;
    // imposto la funzione onLoad che pretende un solo parametro booleano
    // che gli verrà inviato dalla funzione "load" quando verrà richiamata
    myLV.onLoad = function (ok) {
        
    // se il caricamento dei dati va a buon fine
        
    if (ok) {
            
    // creo una variabile temporanea con all'interno il percorso dell'immagine da caricare
            
    var temp:String this.imagepath;
            
    // creo un movieclip in runtime attraverso la funzione dedicata "createEmptyMovieClip"
            
    var mc:MovieClip this.path.createEmptyMovieClip("imgLoader"1);
            
    // avvio il caricamento dell'immagine dentro al movieclip attraverso 
            // la funzione dedicata "loadMovie"
            
    mc.loadMovie(temp);
        }
    }
    // avvio il caricamento dei dati esterni, che attiverà di conseguenza l'evento onLoad
    myLV.load("script.php"); 
    Per quanto riguarda invece la creazione di TextField in runtime, si utilizza il metodo dedicato "createTextField" che richiede qualche parametro in più rispetto a quello dei movieclip, ma che puoi trovare tranquillamente nella guida interna di flash con spiegazione ed esempio.

    In ultima analisi, e non per metterti in crisi, ti consiglio se stai cominciando ora con Actionscript, di non fossilizzarti su quella versione del linguaggio, ma passa da subito all'ultima versione (AS3) che cambia abbastanza rispetto alle versioni precedenti.

  5. #5
    Ok...credo di aver capito. Appena posso provero subito!
    Io sto usando Macromedia Flash MX 2004 ma non riesco a trovare un modo per cancellare i simboli che non uso piu! E' una cosa fastidiosissima perche non posso naturalmente piu creare simboli con quel nome.
    Sai dirmi come si fa?
    Alessio
    Alessio_Programmer

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Non ho capito con esattezza il problema della cancellazione, ma credo che riguardo la gestione della libreria, prova a entrarci e da lì elimini quello che non ti serve più.
    C'è anche un'opzione specifica che ti cancella tutto quello che c'è in libreria e non è utilizzato nel filmato.

  7. #7
    Si...ci sono riuscito proprio ora!
    Ti ringrazio di tutto allora! Sei stato gentilissimo!
    Ora provero ad andare avanti, se dovessi avere qualche problema posso contare su di te allora No dai scherzo!
    Grazie ancora
    Alessio
    Alessio_Programmer

  8. #8
    Ma perche se scrivo:
    _root.chisiamo_mc.chisiamo_text.setTextFormat("Tim es New Roman",50,0xFFFFFF);
    Non mi cambia ne font, ne size e ne colore? -.-
    Help me!
    Alessio_Programmer

  9. #9
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    bisogna creare un oggetto textformat per poi assegnarlo al textfield che ci interessa

    Codice PHP:
    var myTF = new TextFormat();
    myTF.font "Times new Roman";
    myTF.size 50;
    myTF.color 0xFFFFFF;
    _root.chisiamo_mc.chisiamo_text.setTextFormat(myTF); 

  10. #10
    Non va
    //SETTO IL FONT var myTF = new TextFormat(); myTF.font = "Times new Roman";
    myTF.size = 50; myTF.color = 0xFFFFFF;
    _root.chisiamo_mc.chisiamo_text.setTextFormat(myTF );
    _root.chisiamo_mc.chisiamo_text.wordWrap="true";
    _root.chisiamo_mc.chisiamo_text.multiline="true";
    _root.chisiamo_mc.chisiamo_text.selectable=false;
    _root.chisiamo_mc.chisiamo_text.type="dynamic";
    _root.chisiamo_mc.chisiamo_text.html="true";
    _root.chisiamo_mc.chisiamo_text.htmlText = "Un due tre prova";
    Alessio_Programmer

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.