Ti sei perso il VI Convegno gt? Forse puoi rimediare... www.convegnogt.it X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Flash & ActionScript
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti

Flash & ActionScript Animazione web e linguaggio di programmazione

Hey Amico Visitatore,
Condividi con noi le tue idee e la tua conoscenza Aprendo una nuova discussione nella sezione Flash & ActionScript


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 27-08-07, 18:22   #1 (permalink)
User
 
Data di registrazione: Aug 2007
Messaggi: 112
Da AS3.0 a AS.20 :S

Salve, utilizzo Flash 8 Professional e pian pianino inizio a masticare AS2.0 ...
Ho creato un swf principale dentro cui, attraverso una barra menù, carico di volta in volta degli swf esterni posizionati nell'swf principale attraverso vari mc vuoti (tanti quanti sono gli elementi che richiamo;
I vari mc dentro cui carico gli swf esterni sono draggabili, ma ho il problema che, a secondo il livello in cui sono posizionati nell'swf principale gli mc vuoti, i vari swf che si caricano si sovrappongono l'un l'altro... L'unico modo ''intuitivo'' per risolvere il problema è quello di far sì che ogni volta che l'utente clicca sull'mc vuoto che carica ogni swf, quest'ultimo si porti in primo piano!!
Ho trovato che questa funzione si realizza facilmente in AS3.0 col seguente script:

// Questo codice consente di creare un'interazione di trascinamento della selezione mediante inseguimento del mouse
//.
// cerchio e quadrato sono oggetti di DisplayObjects (ad es istanze di MovieClip
// o di Sprite).

import flash.display.DisplayObject;
import flash.events.MouseEvent;

var offsetX:Number;
var offsetY:Number;
var draggedObject: DisplayObject;

// Questa funzione viene chiamata quando il pulsante del mouse viene premuto.
function startDragging(event:MouseEvent):void
{
// ricorda quale oggetto viene trascinato
draggedObject = DisplayObject(event.target);

// Registra la differenza (spostamento) tra dove si trovava il cursore
// quando il pulsante del mouse è stato premuto e le coordinate x, y
// dell'oggetto nel momento in cui il pulsante del mouse è stato premuto.
offsetX = event.stageX - draggedObject.x;
offsetY = event.stageY - draggedObject.y;

// Sposta l'oggetto selezionato al primo posto nell'elenco di visualizzazione
stage.addChild(draggedObject);

// Indica a Flash Player di iniziare ad intercettare l'evento mouseMove.
stage.addEventListener(MouseEvent.MOUSE_MOVE, dragObject);
}

// Questa funzione viene chiamata quando il pulsante del mouse viene rilasciato.
function stopDragging(event:MouseEvent):void
{
// Indica a Flash Player di cessare di intercettare l'evento mouseMove.
stage.removeEventListener(MouseEvent.MOUSE_MOVE, dragObject);
}

// Questa funzione viene chiamata ogni volta che il mouse viene spostato,
// fino a quando il pulsante del mouse resta premuto.
function dragObject(event:MouseEvent):void
{
// Sposta l'oggetto trascinato nella posizione del cursore, mantenendo
// lo scarto tra la posizione del cursore e la posizione
// dell'oggetto trascinato.
draggedObject.x = event.stageX - offsetX;
draggedObject.y = event.stageY - offsetY;

// Istruisce Flash Player di aggiornare lo schermo dopo questo evento.
event.updateAfterEvent();
}

circle.addEventListener(MouseEvent.MOUSE_DOWN, startDragging);
circle.addEventListener(MouseEvent.MOUSE_UP, stopDragging);

square.addEventListener(MouseEvent.MOUSE_DOWN, startDragging);
square.addEventListener(MouseEvent.MOUSE_UP, stopDragging);



Ma io con AS3.0 sono davvero confuso ed impacciato, perché essendo alle prime armi col 2.0 non so come costruirmi bottoni, loadMovie etc...
Qualcuno sa dirmi se c'è un modo per strutturare questa funzione in AS.20 anziché in AS.3.0?
AIUTOOOOOO!!!
Cinetico non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 27-08-07, 18:33   #2 (permalink)
User Attivo
 
L'avatar di Flep
 
Data di registrazione: Feb 2006
Ubicazione: Undisclosed city of South America
Messaggi: 4,901
Ciao,
se le tue clip sono tutte sulla _root, con AS 2.0 basta che dici alla tua clip:

- quando sei premuta .getDepth(_root.getNextHighestDepth());

PS:
nello script che hai pubblicato non vedo nessuno scambio di livelli
Flep non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 27-08-07, 18:41   #3 (permalink)
User
 
Data di registrazione: Aug 2007
Messaggi: 112
Ciao, grazie per la risposta... ora provo!!

Per quanto riguarda lo scambio di livelli ti assicuro che funziona!!

Dentro Flash Cs3, nuovo file.fla, due livelli
1) azioni
2) forme

dentro forme due mc uno di istanza square e l'altra circle,
quando clicco su square o circle questi sono trascinabili e se si sovrappongono, basta cliccare su quello che sta dietro perché passi avanti!!

Ma forse non c'entra in relazione a swf esterni :S pensavo che non dipendesse da quello che carico o meno dentro circle o square!!

Cmq provo la tua soluzione e ti faccio sapere!!

Grazie mille!!
Cinetico non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 27-08-07, 19:33   #4 (permalink)
User
 
Data di registrazione: Aug 2007
Messaggi: 112
Non funziona

E tra l'altro non capisco perché non mi funzionano neanche i drag... Fatti semplicemente:

nome_mc.onPress = function () {
startDrag ("_root.nomeclipdatrascinare", true);
}
nome_mc.onRelease = function () {
stopDrag ();
}

nome_mc è il movieclip vuoto che carica gli swf esterni (ovviamente il comando è inserito nel gestore eventi e i movieclip vuoti sono istanziati)

Cinetico non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 27-08-07, 19:36   #5 (permalink)
User
 
Data di registrazione: Aug 2007
Messaggi: 112
P.S.

Flep, io avevo scritto

nome_mc.onPress = function () {
on.Press.getDepth(_root.getNextHighestDepth());
}


secondo me ci sono troppi onPress e troppi on release

Cinetico non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 27-08-07, 20:09   #6 (permalink)
User
 
Data di registrazione: Aug 2007
Messaggi: 112
// Sposta l'oggetto selezionato al primo posto nell'elenco di visualizzazione
stage.addChild(draggedObject);
Cinetico non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 27-08-07, 20:12   #7 (permalink)
User Attivo
 
L'avatar di Flep
 
Data di registrazione: Feb 2006
Ubicazione: Undisclosed city of South America
Messaggi: 4,901
Scusa, ma questo codice:
nome_mc.onPress = function () {
startDrag ("_root.nomeclipdatrascinare", true);
}

che fai premi nome_mc per trascinare un' altra MovieClip
Flep non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 27-08-07, 20:42   #8 (permalink)
User
 
Data di registrazione: Aug 2007
Messaggi: 112
Oddio, in genere quando devo trascinare un oggetto qualsiasi faccio così

Importo l'oggetto, lo converto in clip filmato, chiamiamolo mc1, e dentro mc1, creo un pulsante sullo stato sopra (quindi trasparente) che mi copra tutto mc1, torno ad mc1, seleziono il pulsante e vi associo lo script:

on (press) {
startDrag ("_root.mc1", true);
}
on (release) {
stopDrag ();
}

e in genere funziona!! (dimmi se sbaglio)!!

Ma questa volta devo trascinare un swf esterno caricato nell'swf principale tramite loadMovie (rilascio di un tasto carica dentro un movie clip vuoto, diciamo load_mc), e questo swf esterno, tra l'altro, deve essere ''utilizzabile'' dall'utente...quindi non posso coprire load_mc con un bottone trasparente, anche perché il bottone si troverebbe sotto l'swf che carico...come faccio a renderlo draggabile alla pressione e non draggabile al rilascio del mouse???
ed in oltre, ho sempre il problema, che l'utente dovrebbe poter cliccare su uno o un altro swf in modo che questi si spostino in primo piano!!
Non so se sono stato chiaro!!
Tu sei molto gentile però

Se è il caso ti allungo i file (ma non voglio chiedere troppo!!)
Grazie ancora!!
Cinetico non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 27-08-07, 20:59   #9 (permalink)
User Attivo
 
L'avatar di Flep
 
Data di registrazione: Feb 2006
Ubicazione: Undisclosed city of South America
Messaggi: 4,901
Invece di creare un' area sopra al bottone o MovieClip, puoi fare semplicemente così:
nomeMovieClip.onPress=function()
{
this.startDrag();
}

da quel codice quindi:

nomeClipCheContieneSWFCaricato.onPres=function()
{
this.getDepth(_root.getNextHighestDepth());
this startDrag();
}
Flep non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 27-08-07, 21:43   #10 (permalink)
User
 
Data di registrazione: Aug 2007
Messaggi: 112
Niente ... ho inserito il tuo codice nel gestore ClipEvent assegnandolo ad ogni istanza filmato che mi carica i rispettivi swf esterni ma non accade nulla!!

Non ci capisco!!
A te grazie comunque !!
Cinetico non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 27-08-07, 21:50   #11 (permalink)
User Attivo
 
L'avatar di Flep
 
Data di registrazione: Feb 2006
Ubicazione: Undisclosed city of South America
Messaggi: 4,901
non nel gestore clipEvent !

Impara a scrivere codice sulla timeline, non sui bottoni o sulle MovieClip.

Usa la mia tecnica dalla timeline e vedrai che ti troverai meglio.
Flep non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 27-08-07, 21:56   #12 (permalink)
User
 
Data di registrazione: Aug 2007
Messaggi: 112
In che senso??

Io ho un solo livello che chiamo ''azioni'' e scrivo tutto lì, ed il codice l'ho immesso in questo livello ''azioni''... Sono d'accordo con te, scrivo codice nei movieclip solo quando è relativo ad una sua animazione particolare, indipendente dal filmato!!

Ma poi la cosa strana è che per un istante mi ha fatto muovere gli swf, poi niente più (ma ad ogni modo non li portava uno avanti l'altro a secondo di quello che selezionavo)

Cinetico non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 27-08-07, 21:57   #13 (permalink)
User
 
Data di registrazione: Aug 2007
Messaggi: 112
P.S,
i vari movie clip, pulsanti etc. sono su livelli separati da quello ''azioni''
Cinetico non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 27-08-07, 21:59   #14 (permalink)
User
 
Data di registrazione: Aug 2007
Messaggi: 112
ah, dimenticavo.... se si muovevano non erano però attivi, cioé l'swf si muoveva ma i bottoni al suo interno non si azionavano!!
Cinetico non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 27-08-07, 22:04   #15 (permalink)
User Attivo
 
L'avatar di Flep
 
Data di registrazione: Feb 2006
Ubicazione: Undisclosed city of South America
Messaggi: 4,901
Se dentro agli SWF hai dei bottoni, allora ecco perchè creavi 'la finta area' sull' swf caricato, ma non credo ti serva a molto.

Purtroppo in queste situazioni non posso aiutarti molto, ho caricato swf esterni molto raramente, sono abituato a sviluppare con classi AS per cui non so che dirti al momento...

Con Flash se lavori dalla timeline e scrivi tutto lì, se hai bottoni dentro ad una MovieClip a cui applichi degli eventi del mouse sono problemi.

Se sei sulle classi lo gestisci molto meglio.

Flep non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Rispondi


Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 00:04.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.