Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù 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 03-02-12, 22:26   #1 (permalink)
User
 
Data di registrazione: Nov 2011
Ubicazione: catania
Messaggi: 17
[AS3] Rimuovere un Child dallo Stage con Pulsante

Rieccomi qui a fracassarvi le scatole , apro il thread poiché trovo delle difficoltà nel far si che un Child caricato in un frame (è un Form in sostanza, ma mentre qui è un form...in un altra pagina ho la mappa di google fatta con il codice API quindi è un comando che mi servirebbe molto..) venga rimosso nel momento in cui io passo in un altro frame/pagina e quindi dovrei riuscire a fare il modo che tale Child venga rimosso al click di QUALSIASI pulsante del menu.

Questo è il codice del form

Codice PHP:
import com.warmforestflash.ContactForm;

var 
contactForm:ContactForm = new ContactForm();

contactForm.nameText "Type your name here";
contactForm.emailText "Type your email here";
contactForm.messageText "Type your message here";
contactForm.sendButtonText "INVIA";
contactForm.sendingText "Sending message...";
contactForm.errorEmailText "Your email is not valid.";
contactForm.errorServerText "Server problems.";
contactForm.confirmationText "Thanks for contacting me!";

contactForm.textColor 0x000000;
contactForm.borderColor 0x222222;
contactForm.backgroundColor 0x000000;
contactForm.selectedBorderColor 0xCCCCCC;
contactForm.selectedBackgroundColor 0xffffff;
contactForm.selectedBlurAmount 50;
contactForm.sendButtonTextColor 0xffffff;
contactForm.sendButtonTextRollOverColor 0xffffff;
contactForm.sendButtonColor 0x05b59a;
contactForm.sendButtonRollOverColor 0xff4400;
contactForm.errorColor 0xff4400;
contactForm.confirmationColor 0x05b59a;

contactForm.nameWidth 400;
contactForm.emailWidth 400;
contactForm.messageWidth 550;
contactForm.messageHeight 200;
contactForm.verticalSpacing 10;

addChild(contactForm);
contactForm.100;
contactForm.100
e questo è il removeChild che ho creato (perché penso serva un removeChild dato che ho caricato un Child)

Codice PHP:
addEventListener(MouseEvent.CLICKonMouseClick10);
function 
onMouseClick10(event:MouseEvent):void {
    
removeChild(contactForm);

Non mettendo nulla davanti all'addEventListener (L'HO SCOPERTO PER CUL OPS FORTUNA XD) al qualsiasi click di qualsiasi pulsante del menu (ho solo quei pulsanti sul sito) il form sparisce e l'utente riesce ad andare nelle altre pagine senza che il form rimanga.

Purtroppo funziona a metà :/ in quanto, si riesco a navigare nelle altre pagine tranquillamente ma mi appare un errore output:


ArgumentError: Error #2025: Il valore fornito per DisplayObject deve essere un elemento secondario del chiamante.
at flash.display:isplayObjectContainer/removeChild()
at index2_fla::MainTimeline/onMouseClick10()


Che come si può vedere è problema del codice generico che ho messo e che per caso ho scoperto.

Domanda quindi: come faccio a sistemare quel cosice? come faccio a generalizzare il codice in maniera corretta? dopo di ciò so anche che è possibile eliminare COMPLETAMENTE L'oggetto (perché così com'è ora rimane in memoria e appesantisce il progetto...) con un comando simile al ...= null; ma non ricordo com'è...

Grazie anticipatamente
depeppe2000 non in linea   Rispondi citando
Vecchio 03-02-12, 22:44   #2 (permalink)
Moderatore
 
Data di registrazione: May 2008
Messaggi: 2,551
Ti da qull'errore perchè fa il removeChild anche se il form non è caricato, prova a dichiarare una variabile Booleana e valorizzarla a true solo quando il form è caricato, quindi metti il removeChild dentro una condizione if
Codice:
if(controllo==true)
{
removeChild(contactForm)
}
__________________

Nhatan
Nhatan non in linea   Rispondi citando
Vecchio 03-02-12, 22:49   #3 (permalink)
User
 
Data di registrazione: Nov 2011
Ubicazione: catania
Messaggi: 17
Nhatan arriverai al punto che avrai parlato più con me che con qualsiasi altra persona in tutta la tua vita hahahaha

Grazie ancora per il supporto ma non ho capito.

Cioè ho capito ma non so come agire.

Io ho capito (dimmi se erro giustamente) che devo , tramite questo codice, far verificare al codice il corretto caricamente del form e solo dopo (il click chiaramente) rimuoverlo dallo stage.

Insomma quello che non ho capito è cosa devo mettere in "controllo" e...questo codice so che devo metterlo dentro questo:

Codice PHP:
addEventListener(MouseEvent.CLICKonMouseClick10); 
function 
onMouseClick10(event:MouseEvent):void 
    
removeChild(contactForm); 

ma non so dove di preciso :/

TI FARO' UNA STATUA TI GIURO
depeppe2000 non in linea   Rispondi citando
Vecchio 03-02-12, 23:46   #4 (permalink)
Moderatore
 
Data di registrazione: May 2008
Messaggi: 2,551
Dunque se tu hai un pulsante che carica il form.
Codice:
stop()
var loader:Loader = new Loader();
var controllo:Boolean=false
btn_carica_form.addEventListener(MouseEvent.CLICK, carica_form);

function carica_form(event:MouseEvent) {   
    loader.load(new URLRequest("form.swf"))
   
  //form ad esempio al  frame 2
  gotoAndStop(2)
  controllo=true
  trace(controllo)
  }
addChild(loader)

//e lo devi scaricare qualsiasi pulsante premi ad esempio btn_home
btn_home.addEventListener(MouseEvent.CLICK, onClick);
function onClick(event:MouseEvent) {   
 if(controllo==true)
{
removeChild(loader)
}
gotoAndStop(1)
controllo=false
 trace(controllo)
}
prova un pò se funziona.
__________________

Nhatan
Nhatan non in linea   Rispondi citando
Vecchio 04-02-12, 01:40   #5 (permalink)
User
 
Data di registrazione: Nov 2011
Ubicazione: catania
Messaggi: 17
Allora il form lo carica ma non lo scarica e i pulsanti non sono molto reattivi quando vengono usati...e mi da anche errore di sicurezza

l'ho compilato cosi:

Codice PHP:
stop()
var 
loader:Loader = new Loader();
var 
controllo:Boolean=false
btn_contatti
.addEventListener(MouseEvent.CLICKcarica_form);

function 
carica_form(event:MouseEvent) {   
    
loader.load(new URLRequest("contactForm"))
   
  
//form ad esempio al frame 2
  
gotoAndStop(2)
  
controllo=true
  trace
(controllo)
  }
addChild(contactForm)

//e lo devi scaricare qualsiasi pulsante premi ad esempio btn_home
btn_home.addEventListener(MouseEvent.CLICKonClick);
function 
onClick(event:MouseEvent) {   
 if(
controllo==true)
{
removeChild(contactForm)
}
gotoAndStop(1)
controllo=false
 trace
(controllo)

Per quanto riguarda il caricamento comunque con il codice che ho postato al primo post riesco a caricarlo...non possiamo usare un semplice removeChild associato ad un qualcosa che generalizzi e dica che qualsiasi pulsante venga cliccato, il form venga scaricato?

Perché dal codice tuo a quanto ho capito devo andare a creare comunque 6 "gruppi":

Codice PHP:
//e lo devi scaricare qualsiasi pulsante premi ad esempio btn_home
btn_home.addEventListener(MouseEvent.CLICKonClick);
function 
onClick(event:MouseEvent) {   
 if(
controllo==true)
{
removeChild(loader)
}
gotoAndStop(1)
controllo=false
 trace
(controllo)

Un altra cosa, il form che carico è un istanza in realtà e non un swf esterno...un istanza dal nome contactForm che per la precisione è questo:

***.warmforestflash.com/blog/2009/06/flash-as3-contact-form-using-php/

per ovviare ad inutili tentativi di caricamento (non vorrei fosse protetto anche questo come l'ultima galleria di cui parlammo tempo fa..) sai dirmi se esiste qualche form da poter inserire e basta e che magari tu hai provato così da esser sicuri?

Ciao Nhatan grazie ancora
depeppe2000 non in linea   Rispondi citando
Vecchio 04-02-12, 13:58   #6 (permalink)
User
 
Data di registrazione: Nov 2011
Ubicazione: catania
Messaggi: 17
Nhatan ho risolto aggiungendo una parte di quello che hai scritto , ma in maniera differente.Faccio riferimento per la precisione al controllo, e alla sua funzione.

il codice ora è così composto (se dovesse mai servire a qualcuno):

Codice PHP:
btn_home.addEventListener(MouseEvent.CLICKonMouseClick7); 
function 
onMouseClick7(event:MouseEvent):void 
    if(
this.contains(contactForm))  removeChild(contactForm); 


btn_obiettivi.addEventListener(MouseEvent.CLICKonMouseClick8); 
function 
onMouseClick8(event:MouseEvent):void 
    if(
this.contains(contactForm))  removeChild(contactForm); 


btn_prodotti.addEventListener(MouseEvent.CLICKonMouseClick9); 
function 
onMouseClick9(event:MouseEvent):void 
    if(
this.contains(contactForm))  removeChild(contactForm); 


btn_info.addEventListener(MouseEvent.CLICKonMouseClick10); 
function 
onMouseClick10(event:MouseEvent):void 
    if(
this.contains(contactForm))  removeChild(contactForm); 


btn_collabora.addEventListener(MouseEvent.CLICKonMouseClick11); 
function 
onMouseClick11(event:MouseEvent):void 
    if(
this.contains(contactForm))  removeChild(contactForm); 

come puoi vedere ho aggiunto il controllo in ogni pulsante tranne in quello del form giustamente, perché se veniva cliccato il controllo si accorgeva del form e lo faceva sparire pur restando nella stessa pagina...

in particolare questa è la parte che ho aggiunto:

Codice PHP:
if(this.contains(contactForm)) 
Grazie 1000 per l'aiuto! grazie! mi manca l'altra metà del sito ed ho finito XD però non dovrei incontrare problemi se non la lotta contro il funzionamento del form (e questo lo devo provare sul server) e il caricamento del sito al 100% di un browser..

un info nhatan, ma se io volessi che questo sito venga caricato in risoluzioni differenti...io che devo andarmi a ricreare tutte le immagini che ho usato in diversi formati? (800x600 - 1024x768 quello che uso ora - 1280x1024)
depeppe2000 non in linea   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 09:57.




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

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.