Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    25

    Interscambio di dati fra scene

    Buon giorno a tutti.
    Premesso sono nuovo nell'utilizzo di action scipt 3, vorrei chiedere un aiuto in merito ad un mio problema.
    E ormai da giorni che cerco di leggere dei dati impostati in un scena, in un altra scena, ma non capisco come fare.
    Avevo pensato di appoggiarmi ad un file esterno per l'interscambio dei dati cosi strutturato

    //Dati.as (si trova nella stessa directory del file .fla)
    package {


    public class Dati
    {
    public var stato:Number=0;
    public var livello:Number=0

    }
    }

    //primo frame prima scena, livello actions

    #include 'dati.as'
    import dati.*;
    if(stato==0){
    stop();
    }

    ma puntualmete mi ritrovo con questi errori
    1093: Errore di sintassi. (riferto all'#include del 1° frame)
    1037: I pacchetti non possono essere nidificati. (riferito alla prima riga del file Dati.as)

    qualcuno puo aiutarmi per cortesia?Oppure sa dirmi un metodo migliore?
    N.B.ovviamente c'è un altra scena che lavora in modo simile alla prima.
    In realta infatti, l'una imposta lo 'stato' e l'altra lo legge.

  2. #2
    beh di AS3 nn ne so proprio niente dato che sono rimasto ancora con AS2 ...
    ma la tua idea nn è malvagia
    invece di usare un file che poi vai a richiamare potresti provare a caricare un file esterno su di un livello ed in questo mettere le tue var e poi leggerle nell'altra scena

    tipo
    loadMovieNum("dati.swf",1)
    ed in questo invii i tuoi dati
    _level1.stato=0;

    poi nel controllo ti riferisci al 1 livello

    if(_level1.stato==0){
    stop();
    }

    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  3. #3
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    facciamo un passo indietro, al titolo...

    "Interscambio di dati fra scene"
    - cosa vuoi dire esattamente?
    - quante scene hai e come sono disposte?
    - da quale scena a quale altra vanno i dati?
    - quale codice hai utilizzato prima di quello proposto nel thread?

    considera che il codice proposto è sbagliato perchè la classe non va nè "inclusa" nè importata in questo caso, basta che il file .as si trovi nella stessa cartella del fla che ne richiede l'utilizzo

    inoltre non puoi arrivare direttamente alla variabile "stato", devi impostare un'istanza della classe per raggiungerla, oppure dichiari le variabili come "static" e le puoi raggiungere direttamente da Dati.stato

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    25
    Allora rispondendo brevemente:
    ho 2 scene una chiamata homepage e l'altra Loading;
    nella mia testa ho un progetto sviluppato su un tot di scene che sfruttano tute la stessa scena loading ma per fare cio vorrei che la mia scena Loading "Capisse" quale scena caricare leggendo lo stato scritto in modo "distribuito" da qualche parte, e da li è nata l'idea di importare il file con la classe e quindi le variabili.
    Quindi quale dovrebbe essere il codice e la giusta collocazione?E perche il mio codice è sbagliato?

    grazie per le rapidissima risposta!e per l'nteressamento.

  5. #5
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    ok, la questione ora è più chiara e ti devo dare una brutta notizia:
    non puoi caricare le scene di un singolo swf separatamente e te ne spiego subito il motivo... in pratica le scene sono un modo progettuale che non viene esportato nell'swf, infatti l'swf una volta pubblicato annulla le scene e trasforma l'intero filmato in un'unica timeline lunga quanto tutti i fotogrammi delle scene unite

    per quanto riguarda il codice, in pratica l'include è sbagliato perchè serve ad includere solo file .as che non contengono dichiarazioni di classi, potresti usarlo ad esempio per includere una funzione che usi spesso e che mantieni in un .as separato
    in ogni caso sarebbe comunque sbagliato perchè il flash player nelle ultime versioni è "case-sensitive", ossia tiene conto della differenza tra lettere maiuscole e minuscole
    perciò al massimo, seppur sbagliando in questo caso, avresti dovuto scrivere #include 'Dati.as'

    per quanto riguarda invece l'import, nel tuo caso abbiamo già detto che non è necessario se mantieni il file di classe nella stessa cartella del file .fla che lo richiama, ma nel caso fosse stato necessario richiamarla con l'import avresti dovuto richiamare il package che la conteneva
    un post è un tantino stretto per spiegare la questione, ti rimando alla guida interna di flash per l'importazione delle classi: http://livedocs.adobe.com/flash/9.0_...=00000796.html
    e ai link conseguenti

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    25
    ma quindi per ottenere cio che ho detto,cioè un preloading della scena al momento del click devo creare tanti fla diversi con rspettivi swf giusto?il passo logico succesivo è quindi come importare dati da un swf ad un altro?

  7. #7
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    non vogli andare fuori dalla discussione, ma quale è la necessità di importare dati da un swf all'altro? altra cosa, hai cognizione di come si carica un swf dall'esterno con AS3?

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    25
    Per la stessa ragione per cui avevo bisogno di scambiare dati fra le scene.
    E' solo un'altra modo per risolvere il mio problema.
    Problema tipo:
    homepage->loading->pagina1->
    homepage->loading->pagina2->

    ma se non ho meoria dello stato e della destinazione mi è impossibile passare dall'uno all'altro mediante il loading.Perderei traccia della mia destinazione da aprire.
    P.S. comunque non mi è chiarissimo come si chiama un swf dall'esterno.
    Se potreste illuminarmi sul come fare ve ne sarei immensamente grato.

  9. #9
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    in generale per caricare dati dall'esterno puoi dare un occhiata al link che ho in firma sui caricamenti esterni
    in particolare nel tuo caso opterei per un caricamento sul loader e poi attaccherei allo stage il content del Loader dopo averlo completamente caricato, un esempio veloce

    Codice PHP:
    var l:Loader = new Loader();
    l.load(new URLRequest('home.swf'));
    l.contentLoaderInfo.addEventListener(Event.INITinitHandler);
    function 
    initHandler(e:Event){
    var 
    mc e.target.loader.content;
    addChild(mc);

    per quanto riguarda il dilemma della variabile da scambiare, direi che ti basta utilizzare una variabile da utilizzare "globalmente" sul filmato principale, senza il bisogno di creare lo scambio di dati tramite una classe ecc... un semplice var activeSection:String; da modificare ogni qualvolta clicchi su di un nuovo link

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    25
    ho testato il loading, cioè caricare un file swf.
    Il codice è in pratica perfetto.
    Mi rimangono solo due dubbi.
    se creo una variabile
    var activeSection:String;

    e la definisco public , la sua visibilita(lo scope), sara valido in entrambi i file swf?

    e una volta caricati i file devo ricaricarli per accedervi?suppongo di no, ma in tal caso come mi sposto agevolmente da uno all'altro?
    esempio;
    homepage->loading->pagina1->homepage

    grazie ancora per il supporto.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.