Il campo di testo dinamico che viene scritto in relazione alla lettura da .xml non può contenere un'immagine.
Devi sostituire il campo di testo nel template con un MovieClip che fa da contenitore e quindi modificare il file xml e il codice ActionScript in modo che Flash prelevi l'url dell'immagine per importarla nel filmato.
Trattandosi di una sola immagine, puoi tranquillamente inserirla direttamente nel template (al posto del campo di testo) senza utilizzare xml.
sleter
@sleter
Post creati da sleter
-
RE: Aiuto per caricare immagine in file xml
-
RE: Dividere una bitmap e muovere i pezzi
Ciao
Devi applicare lo startDrag() e stopDrag() al pezzo che ha generato l'evento ovvero quello effettivamente cliccato.
Poi, il pezzo cliccato dovrebbe visualizzarsi sopra tutti gli altri quindi ti serve fare un calcolo sui livelli virtuali che si creano (in realtà tutti i pezzi sono su un'unico livello ma occupano posizioni di visualizzazione diversi).
Ora non stò a spiegarti il concetto dei livelli di visualizzazione della DisplayList in AS3 ma ho fatto un'aggiunta sul codice che hai postato in modo che il pezzo cliccato si possa spostare e al mouseDown venga visualizzato sopra tutti gli altri.
Ho creato poi una variabile numerica che viene utilizzata per identificare il livello di visualizzazione e in questo modo, puoi aumentare il livello di difficoltà del puzzle semplicemente incrementando il numero di pezzi passati alla funzione: "imposta_divisione"[PHP]var pezzi_h:uint;
var pezzi_v:uint;
var sprite_tasselli:Sprite = new Sprite();
var sprite_pezzo:Sprite = new Sprite();imposta_divisione("foto.jpg",3,3);
function imposta_divisione(quale:String,po:uint,pv:uint):void
{
pezzi_h = po;
pezzi_v = pv;
var carica_foto:Loader = new Loader();
var richiesta:URLRequest = new URLRequest(quale);
carica_foto.contentLoaderInfo.addEventListener(Event.COMPLETE,dividi_foto);
carica_foto.load(richiesta);
}function dividi_foto(chi:Event):void
{
var immagine:Bitmap = Bitmap(chi.target.loader.content);
var l_pezzo = Math.floor(immagine.width / pezzi_h);
var a_pezzo = Math.floor(immagine.height / pezzi_v);
for (var r:uint=0; r<pezzi_h; r++)
{
for (var c:uint=0; c<pezzi_v; c++)
{
var img_pezzo:Bitmap = new Bitmap(new BitmapData(l_pezzo,a_pezzo));
img_pezzo.bitmapData.copyPixels(immagine.bitmapData,new Rectangle(rl_pezzo,ca_pezzo,l_pezzo,a_pezzo),new Point(0,0));
sprite_pezzo = new Sprite();
sprite_pezzo.x = Math.random() * 500;
sprite_pezzo.y = Math.random() * 400;
sprite_pezzo.addChild(img_pezzo);
sprite_tasselli.addChild(sprite_pezzo);
}
}
addChild(sprite_tasselli);
sprite_tasselli.addEventListener(MouseEvent.MOUSE_DOWN, sposta);
sprite_tasselli.addEventListener(MouseEvent.MOUSE_UP, rilascia);
}
function sposta(evento:MouseEvent):void
{
var topLevel:uint = pezzi_h * pezzi_v - 2;
var oggetto:DisplayObject = DisplayObject(evento.target);
sprite_tasselli.setChildIndex(oggetto, numChildren + topLevel);
evento.target.startDrag();
}
function rilascia(evento:MouseEvent):void
{
evento.target.stopDrag();
}[/php]Non è finito.
A mio parere l'ideale sarebbe fare in modo che se il pezzo viene posizionato correttamente si attacca allo stage e viene disattivato lo startDrag().
Si potrebbe mettere sotto la foto in trasparenza e fare una specie di griglia invisibile dove i pezzi vanno ad allinearsi correttamente (hitArea).Non ho molto tempo per starci su ma se ti interessa approfondire posso fornirti di alcuni esempi sull'uso di hitArea e hitTestObject.
ciao
-
RE: [AS3] Importare un swf in un fla
... oh Nhatan ma che ti è successo ?
Avevo notato la tua assenza dal forum ma ti credevo in vacanza !
Comunque sono contento di rileggerti e ti auguro una veloce ripresa di attività e studio in privato e in pubblico.
a presto !
Sleter
-
RE: [AS3] Importare un swf in un fla
... ma dai 30 righe di codice per un pulsante in AS3 ?
pulsante.addEventListener(MouseEvent.CLICK, faiQualcosa);
function faiQualcosa(evento:MouseEvent):void
{
trace("ciao");
} -
RE: [AS3] Importare un swf in un fla
Il codice è corretto e l'oggetto Loader viene aggiunto allo stage alle coordinate x e y = 100
-
RE: Banner rotator flash
...we Nhat ... ma inviamo sempre contemporaneamente ?!!!
Un salutone e buona serata !
-
RE: Banner rotator flash
Ciao
Condivido quanto ha scritto Nhatan: Non si impara a usare Flash in 2 giorni o in 2 settimane e serve molto tempo, passione e calma.
Si comincia dalle piccole cose per arrivare alle più grandi e complesse e in rete puoi trovare numerosi esempi da scaricare e analizzare a fini di studio o tutorial e video tutorial gratuiti o a pagamento ma quello che conta davvero è fare tanta pratica, provare e riprovare fino alla noia.
Certamente non si impara facendo copia e incolla, come non si impara se non c'è l'impegno e la volontà necessaria per capire certe dinamiche e le procedure tecniche da adottare.
Ci sono diversi modi per ottenere lo stesso risultato e pertanto sarebbe opportuno conoscerne il più possibile per capire quale metodo è meglio utilizzare per evitare complicazioni ed errori nello sviluppo dell'applicazione.
Non si impara sui Forum come questo o su altri che trattano di Flash e ActionScript, che sono fatti per discutere di problematiche specifiche più o meno complesse ma comunque inerenti a un determinato problema non a un'intera applicazione in Flash.Per cominciare ti suggerisco quindi i diversi tutorial ed esempi da scaricare che puoi trovare in rete e tra questi, puoi dare un'occhiata anche a tutorial di livello intermedio che puoi trovare qui:
w ww.total-photoshop.com/category/flash/
Buon lavoro
ciao
-
RE: Trasferimento sito e problemi con chrome e flash
Ciao
Occhio che lo slash così () non và bene perchè manda indietro.
Io comunque lo vedo corretto (/) e non credo che sia quello il problema in quanto se nelle pagine che si aprono lo vai a mettere a mano, si aprono lo stesso.
E' uno slash che mette Chrome in automatico e se poi vai a verificare su Explorer vedi che apre comunque le pagine e non mette mai lo slash finale.A mio parere il problema è in WordPress e nella migrazione del database.
Mi sorge il dubbio che il CMS non sia configurato correttamente e continui a lavorare sull'altro dominio (.com) in alcune pagine ci sono forse chiamate al database che non vengono eseguite generando problemi di conflitto con i permessi su dominio.it ma ti ripeto: Non ne so molto su WordPress, qualcosa in più su Joomla.Ti consiglierei di postare sulla sezione del forum dedicato a WordPress in quanto escluderei che il problema sia nel Flash.
ciao
P.S.: Le pagine che non si aprono su Chrome non vanno nemmeno su I.E.8, stesso problema di permessi.
-
RE: Trasferimento sito e problemi con chrome e flash
...mmhh ...non ne sò molto di wordpress
Sei sicuro che il sito sia configurato correttamente con il database:
host, nomeutente, nomedatabase, password ecc ?
-
RE: Trasferimento sito e problemi con chrome e flash
... comunque rileggendo meglio questo indirizzo mi sembra strano:
....index.php/commerciali
index.php è un file php che solitamente se viene lanciato manda in esecuzione uno script in php.
E' possibile che la chiamata alla pagina 'commerciali' sia definita anche nel file index.php con codice html ?Non saprei che dire Nhatan ... faccio ipotesi
Semmai prova a controllare se in index.php c'è un div con una chiamata a un <object type ..... (filmato.swf)
ciao
-
RE: Trasferimento sito e problemi con chrome e flash
...mmh ... I.E. è una ciofeca !
Vuoi vedere che quando sbaglia la indovina giusta ?Hai provato a mettere l'indirizzo relativo per vedere se si risolve su tutti i browser o se si guasta ?
Oppure si può provare a mettere anche l'estensione .it o a togliere http: // e iniziare con il www
-
RE: Trasferimento sito e problemi con chrome e flash
...mah ... se funziona correttamente su altri browser ma non su Chrome, mi verrebbe da pensare che Chrome va a pescare il menù nei file temporanei.
Hai provato a cancellare i dati di navigazione ?
-
RE: aiuto per sito in flash template pre impostato
Ciao
Ti ho inviato un messaggio privato con i miei indirizzi Skype e Messenger.
Ho dato un'occhiata al template che hai segnalato e come ha scritto Nhatan non dovrebbero esserci particolari complicazioni e la galleria di immagini come i contenuti testuali sono probabilmente aggiornabili e modificabili da file .xml e cartella senza la necessita di aprire il file sorgente in Flash.
Probabile comunque che si debba ripubblicare l'.swf in Flash solo 1 volta per quanto riguarda alcuni campi di testo e sicuramente c'è da ripubblicare per settare la mappa di google nella pagina dei contatti.
Come puoi immaginare, se non hai la minima esperienza su dove mettere le mani ti troveresti di fronte a qualcosa di piuttosto complicato e da parte nostra, in un Forum senza avere i file davanti sarebbe un'impresa non indifferente spiegarti come fare.
Ciao
-
RE: aiuto per sito in flash template pre impostato
@Nhatan said:
PS. ciao Sleter abbiamo risposto contemporaneamente.
Ciao Nhat -
RE: aiuto per sito in flash template pre impostato
Se il template è in Flash ovviamente devi usare Flash per poterlo modificare, ma anche NO !
Perchè un template potrebbe anche essere modificato nei contenuti (immagini, testi, pulsanti) da file xml o txt o da qualsiasi supporto di archiviazione dati (database mySql compreso).
ciao
-
RE: Classe per visualizzare del testo in AS3
Ciao
Si in effetti la tua domanda è pertinente, nel pacchetto flash.display ci sono tutte le classi principali utilizzate dal FlashPlayer e pertanto c'è la classe Stage ma quest'ultima non è accessibile a livello globale e per accedervi occorre fare riferimento alla proprietà stage (minuscolo).
Se la tua classe.as non è fisicamente collegata allo stage e usi appunto la proprietà stage, ti ritorna un errore del tipo che hai riscontrato.
Se provi a commentare l'addChild(mess); nel codice che ti ho suggerito sopra, vedi che ricevi lo stesso errore.
Lasciando commentato l'addChild e nella classe.as vai a commentare la riga dove c'è la proprietà stage, ti accorgi che la classe risulta sempre collegata al .fla e istanziata correttamente (perchè è presente nella stessa cartella e Flash la trova automaticamente), non vengono segnalati errori ma non viene nemmeno aggiunto allo stage il campo di testo.Ci sarebbe da dire altro sull'evento: ADDED_TO_STAGE utilissimo e che in certi casi fa risparmiare il ricovero alla neuro ma per ora mi fermo qui per non rischiare di confonderti e anche perchè molte cose non sono ancora chiare nemmeno a me o perlomeno, non abbastanza chiare per spiegarle chiaramente.
ciao e alla prossima
-
RE: Classe per visualizzare del testo in AS3
... ho visto solo adesso il tuo messaggio precedente.
Probabile che l'errore che riscontri sia dovuto alla proprietà stage perchè come ti ho scritto sopra, la classe non necessariamente ha una proprietà 'stage'.
ciao
-
RE: Classe per visualizzare del testo in AS3
Ciao
Il primo codice che riporti main.as non è un codice per una classe ma potrebbe essere l'importazione della classe Messaggio.as sullo stage del .fla.
Tuttavia manca l'addChild della classe e pertanto, non è fisicamente collegata allo stage (potresti avere una classe che svolge funzioni autonome e le trasmette ad altre classi che a loro volta sono collegate allo stage e agli oggetti contenuti).La classe Messaggio.as non è correttamente formattata:
Nella dichiarazione di classe istanzi e crei una variabile senza definirne l'attributo pubblico o privato e anche se non ti dà errori è sempre meglio fornire al codice tutte le informazioni utili, anche se a volte non necessarie.Stesso discorso per la funzione 'creaMessaggio' che richiami da altre posizioni, deve assolutamente essere definita pubblica.
Anche se l'hai annidata nella funzione costruttrice della classe (che deve essere sempre pubblica), non ti serve annidarla e può benissimo stare fuori.La stessa funzione dovrebbe restituire un valore di tipo TextField e anche questo non è esatto, per quello che mi è sembrato di capire, vuoi che il campo di testo già creato nella dichiarazione di classe con 'new' ti riporti la variabile stringa che hai già passato alla funzione nella chiamata per cui, la funzione non deve restituire alcun valore dato che il valore che ti serve l'hai già assegnato a 'v' come stringa.
Comunque, e scusami se mi sono dilungato, ottieni il campo di testo con il valore stringa che hai passato alla funzione se fai così:
Questo codice inserito nel pannello azioni di Flash al primo fotogramma del .fla:
[PHP]var mess:Messaggio = new Messaggio();
addChild(mess);
mess.creaMessaggio("casa");[/PHP]E la classe Messaggio.as nella stessa cartella de .fla deve essere compilata così:
[PHP]package
{
import flash.text.TextField;
import flash.text.TextFormat;
import flash.display.*;public class Messaggio extends MovieClip { private var testo:TextField = new TextField ; public function Messaggio():void { trace("OK Classe Messaggio istanziata correttamente"); } public function creaMessaggio(v:String):void { trace("sono in creaMessaggio"); testo.text = v; testo.width = 500; testo.x = stage.stageWidth / 2 - testo.width / 2; addChild(testo); } }
}[/PHP]
ciao