- Home
- Categorie
- Digital Marketing
- Grafica, Visual Design & UX
- Sono scemo io o cosa ?
-
Sono scemo io o cosa ?
Ogni volta che mi metto a lavorare con flash me ne pento....
Mi dite per favore dove sbaglio ??
var tile:MovieClip = new MovieClip();
var tile_img:Loader = new Loader();tile_img.load(new URLRequest(pnlToolbox.getItemAt(pnlToolbox.selectedIndex).source));
tile.addChild(tile_img);
tile.x=xpos;
tile.y=ypos;
tile.width = w;trace(w);
trace(tile.width);E' assurdo: w è una variabile passata come parametro alla funzione che contiene il codice sopra (variabile w : Number).... il trace(w) mi restituisce il valore esatto di w (196), mentre il trace di tile_img.width (a cui assegno w subito prima) mi risulta 0 !!! com'è possibile ??? è come se non accettasse l'assegnazione...come se fosse di sola lettura, o non so che...... ma non da comunque nessun errore in output.
Sto impazzendo, pls help me .... tnx
-
Ciao,
prima di tutto devi assegnare dei listeners in ascolto agli eventi della classe Loader o Flash non sa quando Loader ha caricato tutto.Poi dovresti anche fare un addChild di tile
-
@Flep said:
Ciao,
prima di tutto devi assegnare dei listeners in ascolto agli eventi della classe Loader o Flash non sa quando Loader ha caricato tutto.Poi dovresti anche fare un addChild di tile
Questo lo faccio già, solo che non l'ho incollato nel codice sopra perchè non c'entrava con il problema... e faccio anche l'addChild più avanti nel codice.
Il problema non è questo...è che la proprietà width è come se non accettasse valori..qualsiasi cosa le assegno non la memorizza e rimane 0..... cmq ho temporanemanete risolto assegnando la variabile w (che è la larghezza del tile, che ho già ottenuto prima perchè è uguale ad un altro tile che ho già caricato) alla proprietà creata a runtime pre_w (tile.pre_w = w).... so che è una soluzione brutta e poco elegante ma per adesso è l'unica che funziona...
Nessun suggerimento sul perchè la proprietà width del movieclip tile non memorizza il valore che assegno (come se fosse in sola lettura) ?
-
Scusa non ho capito,
il valore gli e lo assegni quando è già stato caricato oppure no ?
-
@Flep said:
Scusa non ho capito,
il valore gli e lo assegni quando è già stato caricato oppure no ?Allora, tile è una movieclip contenitore, che contiene al suo interno l'istanza dell'oggetto Loader chiamata tile_img.
la proprietà width di tile (il contenitore, non l'oggetto loader che carica l'immagine) la assegno dopo che chiamo tile_img.load...ma prima che l'immagine sia effettivamente caricata (quindi comunque prima che l'evento complete venga "scatenato"). Cmq la proprietà width è della Movieclip contenitore, non dell'oggetto loader, percui non c'entra nulla con il fatto che l'oggetto loader abbia finito di caricare l'immagine o meno.
Però finchè non viene caricata l'immagine sull'oggetto Loader (contenuto dentro la movieclip contenitore tile) in teoria la movieclip tile è vuota, o meglio ha un oggetto Loader all'interno che però non contiene nulla....è possibile che non si possa assegnare una width/height arbitraria ad una movieclip, a meno che non "disegno" qualcosa dentro (ad esempio uno shape, un rettangolo) che si estenda alle dimensioni width/height che voglio ?
-
Ora ho capito, se scrivevi il codice facevamo 3 giorni prima
Se il contenitore in cui metti l'istanza di Loader è vuoto, non puoi assegnare un width.
Quello che non capisco è perchè inserisci un' istanza Loader dentro ad un' altra MovieClip... la classe Loader eredita tutto dalla classe MovieClip per cuipotresti interagire con l' istanza Loader come fosse una MovieClip.