- Home
- Categorie
- Digital Marketing
- Grafica, Visual Design & UX
- Delimitare l'area di attività di un swf esterno ... o quasi!!
-
Delimitare l'area di attività di un swf esterno ... o quasi!!
Salve, sono nuovo del forum e di flash!!
Utilizzo Flash 8 Professional e Action Script 2.0
Illustro il problema nella sequenza con cui mi si è presentato.
Inizialmente, ho creato un swf in cui è possibile disegnare col mouse, come segue:
Impostazioni filmato 600x400, colore di sfondo nero;
nella scena1/livello1/frame1 ho scritto:fscommand (allowscale = false);
poi ho creato un mc con nome istanza ''matita'' in cui ho inserito il seguente codice nel frame1:
_parent.onMouseDown = function() {
_parent.lineStyle(2, 0xFFFFFF, 100);
_parent.moveTo(_parent._xmouse, _parent._ymouse);
isDrawing = true;
};
_parent.onMouseMove = function() {
if (isDrawing == true) {
_parent.lineTo(_parent._xmouse, _parent._ymouse);
updateAfterEvent();
}
};
_parent.onMouseUp = function() {
isDrawing = false;
};
clear_btn.onRelease = function() {
_root.clear();
}Fin qui tutto bene. L'swf funziona e la matita scrive. L'swf si chiama "penbianco.swf"
Io ho però la necessità di caricare questo ''accessorio'' dentro un altro filmato ''index.swf''...è chiaro però che quando carico penbianco.swf questo non mi carica lo sfondo ma solo il ''pennino'', poiché lo sfondo del .fla orginale non viene importato dentro l*.swf principale che richiama il secondo.swf...in questo caso index.swf carica solo il pennino di ''penbianco.swf''; ho quindi creato un altro swf, dove ho costruito lo sfondo della lavagnetta e l'ho chiamato ''lavagna.swf'', e vi ho inserito un bottone (di tipo movie clip) e gli ho associato lo script:
bianco.onRelease = function (){
loadMovie ("penbianco.swf", 2);
}per caricare ''penbianco.swf'' ad un livello superiore, in modo che scriva su di uno sfondo visibile e reale, perché altrimenti scriverebbe al di sotto di tutti i livelli visibili.
A questo punto, ho creato un pulsante nell'*.swf principale, cioé ''index.swf'' che mi richiama ''lavagna.swf'' dove posso caricare i vari pennelli bianco, rosso, etc...con un procedimento identico a ''penbianco.swf'',
IL PROBLEMA:
i vari pennelli mi scrivono su tutto ''index.swf''...come faccio a delimitare l'area di azione dei pennelli affinche scrivano solo dentro ''lavagna.swf''
P.S.
lavagna.swf è di dimensioni 600x400
index.swf è di dimensioni 1024x768Grazie anticipatamente!!
-
Ciao Cinetico e benvenuto su GT
credo che la soluzione piu facile sia con il this.setMask(mask);
Non sono sicura se il this e adeguato perche mi sono persa con i loadMovie tra index, lavagna e mattita.:?
Cmq, basta trovare il path giusto.:)
-
Onsitus, innanzitutto grazie mille per la risposta!!
In verità la struttura è semplice, effettivamente l'ho compliacata un po' nella spiegazione, sorry
Ho a.swf (index) che alla pressione di un bottone carica b.swf (lavagna.swf)dal qual posso caricare vari pennelli bianco.swf , rosso.swf , giallo.swf etc.etc.
Il problema, stringendo, è che siccome l'azione di ''scrittura'' anche se attivata dentro un mc vuoto è riferito alla pressione del mouse, il mouse scrive ovunque!!
L'ho fatta lunga per essere preciso con l'AS, ma come al solito a tirarla troppo lunga si complicano solo le cose!!
Puoi spiegarmi meglio dove dovrei inserire this.Mask..... ?? :S
HEEEEEELLLLPPPPP!!!
Scusa se sono un po' 'mbranato!!
-
Lavagna.swf a che serve??? E solo un sfondo grafico?:?
-
Ciao, purtroppo no, lavagna.swf è anche il menù per caricare i vari pennelli!
Non so che fare!! :bho:
-
Vedi quel esempio alegato se puo aiutare. :bho:
L'ho fatto un po di fretta per quello non guardare la grafica. Non ho messo ordine in libreria neanche.
Fammi sapere.;)
-
Fino a 3 minuti fa ero ateo... ora credo in Onsitus!!!
GRAZIEEEEEEEE!!! Obbligato!!
Funziona perfettamente!!
Devo studiare ancora parecchio!!
Sono solo un paio di mesi che uso flash...è bello scoprire sempre nuove funzioni, ma è tremendo quando mi areno!!Action Script 2.0 è bellissimo, ma caspita se è complicato!! :?:bho:
Grazie ancora Onsitus, sono davvero contento, non mi aspettavo tanta disponibilità!! Grazei ancora!!
-
Ha provato a caricarlo in index?:?
-
Sì, grazie, provato nell'index... Lo carico dentro un Movie Clip vuoto e la maschera regge perfettamente...
Ma non capisco una cosa nella struttura... in scena 1, il livello matita, contine il movieclip matita_mc, dentro cui ci sono due livelli: mask e azioni. Strutturalmente sulle azioni non ci sono dubbi né problemi: ogni frame è un colore richiamato dai bottoni sulla scena1... ma non capisco perché metti this ...e non ad esempio _parent o _root ... cioé, 1) this cosa gli indica di particolare? e 2) this.setMask (mask) che tipo di comando è, un filtro??
Voglio capire...
-
Il this si rifera alla timeline in quale e scritta, nel tuo caso sarebbe matita_mc.
Il _parent (genitori) alla linea temporale in quale e contenuto l'ogetto. Esempio: nel codice scritto inizialemente da te anche se il codice era nel clip filmato 'matita' con il _parent si referiva alla linea temporale principale. Per quello il disegno veniva fatto non nel clip filmato stesso ma sul 'stage' principale.
Il _root e la linea temporale principale.Non so se mi sono spiegata bene. Io mi capisco.:D
Cmq, in flash e incluso la guida dove puo trovare migliore spiegazione detagliate in un italiano sicuramente piu coretto (se ha la versione italiana);)Il setMask serve a mascherare. Solo la zona coperta della maschera, sara visibile. Come detto prima, cerca un po la guida per info complete.
-
Non sei italiana?? Comunque grazie, grazie e grazie ancora... ho capito benissimo!! Scusa per l'eccesso di zelo, ma mi piace capire quello che faccio e non solo copiare ed incollare lo script!!
La guida di Flash la trovo chiara per certi aspetti, ma per altri mi sembra solamente un'accozzaglia di informazioni una dietro l'altra sulle varie funzioni, senza chiarire però a cosa servano veramente le varie cose descritte di volta in volta!!
Comunque, ti ripeto, sono alle prime armi, speriamo che in futuro vada meglio!! Ma credo che passerò spesso da qui per chiedere aiuto!!
Grazie ancora di tutto, passo e chiudo!!
-
Prego. Non sono sempre cosi disponibile.:D
Ciao.