• User

    [Risolto] link con actionscript 3.0!!

    ciao a tutti ho bisogno di aiuto... ho ripreso flash dopo 2 anni che non lo usavo e con gli action script 3.0 non stò capendo nulla!!

    prima usavo il classico get url per impostare al mio bottone un link esterno... ora invece non capisco nulla, mi potete spiegare la procedura passo per passo? semplificatemi anche qualche operazione, del tipo: vai sullo stage elimina il bottone o altre cose, non ricordo quasi più nulla di flash, anche i comandi basiliari!! help me raga, aspetto risposte, saluti!!


  • User

    come ho scritto recentemente sul forum di un amico... 🙂

    AS 3.0 non contempla piu' il getURL... ma ovviamente non ci hanno privato di questa importantissima possibilita' : )

    vediamo come:

    
    import flash.net.*;
    import flash.events.*;
     
    pulsante.addEventListener(MouseEvent.CLICK,onClick);
    var url:URLRequest = new URLRequest(http://www.sito.org);
    function onClick(e:Event):void{ 
       navigateToURL(url, "_self");
    }
    
    

    importiamo intanto i package flash.net., che sono fondamentali per questa richiesta, e ovviamente i .events....

    ...creiamo sullo stage un pulsante con nome istanza 'pulsante', al quale associamo un listener sull'onClick...

    quindi definiamo una variabile di tipo URLRequest, che conterra' la pagina che vogliamo richiamare.

    A questo punto non ci resta che richiamare, ad esempio alla pressione del pulsante, il metodo navigateToURL, passando come primo parametro l'url, come secondo il target (..."_blank", "_parent", "_self"...)

    e il gioco e' fatto : )

    zak


  • User

    @zakwer said:

    come ho scritto recentemente sul forum di un amico... 🙂

    AS 3.0 non contempla piu' il getURL... ma ovviamente non ci hanno privato di questa importantissima possibilita' : )

    vediamo come:

    >
    import flash.net.*;
    import flash.events.*;
     
    pulsante.addEventListener(MouseEvent.CLICK,onClick);
    var url:URLRequest = new URLRequest(http://www.sito.org);
    function onClick(e:Event):void{ 
       navigateToURL(url, "_self");
    }
    
    >```importiamo intanto i package flash.net.*, che sono fondamentali per questa richiesta, e ovviamente i .events.*...
     
    ...creiamo sullo stage un pulsante con nome istanza 'pulsante', al quale associamo un listener sull'onClick...
     
    quindi definiamo una variabile di tipo URLRequest, che conterra' la pagina che vogliamo richiamare.
     
    A questo punto non ci resta che richiamare, ad esempio alla pressione del pulsante, il metodo navigateToURL, passando come primo parametro l'url, come secondo il target (..."_blank", "_parent", "_self"...)
     
    e il gioco e' fatto : )
     
    zak
    forse non mi sono spiegato bene, tutto quello che hai scritto, url request, listener onclick, package ed events... non capisco nulla xD
    
    non puoi scrivermi per cortesia una guidina passo per passo sulla procedura e dove devo cliccare? mi faresti una cortesia!! grazie comunque per l'aiuto!!

  • User

    mm... allora facciamo cosi: prendi il codice che ti ho scritto e sbattilo su un frame. crea un pulsante e dagli come nome istanza 'pulsante'.

    fai partire il filmato e premi sul pulsante.

    fine

    [comicia ad entrare nell'ordine di idee di studiare AS da capo :D]

    zak
    ()


  • User

    @zakwer said:

    mm... allora facciamo cosi: prendi il codice che ti ho scritto e sbattilo su un frame. crea un pulsante e dagli come nome istanza 'pulsante'.

    fai partire il filmato e premi sul pulsante.

    fine

    [comicia ad entrare nell'ordine di idee di studiare AS da capo :D]

    zak
    ()
    1084: Syntax error: expecting rightparen before colon.
    1086: Syntax error: expecting semicolon before colon.
    1084: Syntax error: expecting rightbrace before end of program.

    mi dice questo appena ho fatto questi procedimenti: creato bottone chiamato "pulsante", fatta la sagoma, preso dalla libreria a sbattuto nella scena, sotto ho cambiato il nome istanza in "pulsante".... selezionato il primo frame della scena (ho provato a farne un'altro) e incollato il codice, faccio l'anteprima e mi scrive quelle cose sopra!! help me!!


  • Super User

    Ciao ilprimore, 🙂
    quell' errore è dovuto alla sintassi.

    Controlla che hai copiato esattamente il codice che ha scritto zakwer, sembra che hai dimenticato una parentesi graffa 🙂


  • User

    @Flep said:

    Ciao ilprimore, 🙂
    quell' errore è dovuto alla sintassi.

    Controlla che hai copiato esattamente il codice che ha scritto zakwer, sembra che hai dimenticato una parentesi graffa 🙂
    ho riprovato 2 volte prendendo precisamente tutto il codice.... ma capitano solo a me questi problemi? mado mi smoscio terribilmente 😞 non c'è una guida su come imparare a linkare con gli as 3?


  • Super User

    Mancano le virgolette nel codice di zakwer.

    Prova così:

    
    nomePulsante.addEventListener(MouseEvent.CLICK,onClick);
    function onClick(e:Event):void
    { 
     var [url:URLRequest=new](http://www.giorgiotave.it/forum/URLRequest=new) URLRequest('http://www.sito.org');
     navigateToURL(url,"_self");
    }
    
    

  • User

    e' vero. ieri mi sono scordato di editare poi. correggo subito.

    scusate :rollo:

    ah.. nn si puo' piu'. niente 🙂

    zak


  • User

    grazie mille funzionaaaaaaaaa

    sentite ma se voglio mettere più di un bottone linkandolo? creo un nuovo frame per ogni bottone sulla clip aggiungendoci il solito codice? grazie ancora ad entrambi!!


  • Super User

    @ilprimore said:

    grazie mille funzionaaaaaaaaa

    sentite ma se voglio mettere più di un bottone linkandolo? creo un nuovo frame per ogni bottone sulla clip aggiungendoci il solito codice? grazie ancora ad entrambi!!

    Sì, prova così, se non gira come dovrebbe allora bisogna fare in un altro modo.
    Facci sapere.


  • User

    @Flep said:

    Sì, prova così, se non gira come dovrebbe allora bisogna fare in un altro modo.
    Facci sapere.
    una cosa Flep, quando ho fatto l'anteprima da flash e ho cliccato sul bottone creato mi è apparso un'avviso che l'oggetto flash stà tentando di collegarsi con un sito esterno... ma questo avviso ci sarà anche sul sito completo? spero di no!!

    ah una cosa, io voglio che le pagine linkate si sovrascrivano con la vecchia pagina, non voglio che si apra una nuova finestra o una nuova scheda, è possibile? sull'html c'era il comando _blank, quà cosa c'è?


  • Super User

    Fai uno screenshot dell' avviso così lo guardiamo.

    '_parent' 😉 ... è come l' html quel comando, ma sempre tra virgolette 😉


  • User

    @ilprimore said:

    una cosa Flep, quando ho fatto l'anteprima da flash e ho cliccato sul bottone creato mi è apparso un'avviso che l'oggetto flash stà tentando di collegarsi con un sito esterno... ma questo avviso ci sarà anche sul sito completo? spero di no!!

    no tranqui, succede solo finche' l'applicazione e' in locale 🙂

    zak


  • User

    nomePulsante.addEventListener(MouseEvent.CLICK,onClick);
    function onClick(e:Event):void
    {
    var url:URLRequest=new URLRequest('http://www.sito.org');
    navigateToURL(url,"_parent");
    }

    ho modificato il codice aggiungendo il _parent dove ho ritenuto andasse, in caso me lo sistemate voi perfavore? grazie ancora ad entrambi 😉


  • Super User

    Il parent così è giusto 🙂


  • User Newbie

    @Flep said:

    Sì, prova così, se non gira come dovrebbe allora bisogna fare in un altro modo.
    Facci sapere.

    ho provato replicando il codice su diversi frame quanti sono i bottoni e cam biando il nome dell'istanza e puntamento url ai bottoni duplicati ma mi da errore :

    Duplicate function definition.

    function onClick(e:Event):void

    come possso risolverla!??

    thanx


  • Super User

    Ciao, e benventuo nel forum GT 🙂
    Flash CS3 non è come la versione precedente.
    Non puoi usare quella tecnica.
    Basta che dichiari una volta la funzione.
    Poi dall' interno della funzione, con e.target recuperi il bottone che è stato cliccato, qualsiasi esso sia.


  • User Newbie

    @Flep said:

    Ciao, e benventuo nel forum GT 🙂
    Flash CS3 non è come la versione precedente.
    Non puoi usare quella tecnica.
    Basta che dichiari una volta la funzione.
    Poi dall' interno della funzione, con e.target recuperi il bottone che è stato cliccato, qualsiasi esso sia.
    ti ringrazio x la tempestiva risposta....ma non credo di aver ben capito il da farsi...sono poco pratico di actionscript 3....potresti essere piu dettagliato....thanx


  • Super User

    Con questa funzione di esempio, ti restituisce il bottone che è stao cliccato:

    nomeBottone.addEventListener(MouseEvent.CLICK,go);

     function go(evt:MouseEvent):void
    {
        trace(evt.target);
    }
    ```assegni il listener ( addEventListener... ) ad ogni bottone.
    La funzione go rimane una sola perchè con evt.target recuperi il bottone che è stato cliccato.
    Per cui poi in base al bottone potresti applicare delle logiche condizionali per separare appunto le azioni da compiere in base al bottone che è stato cliccato.