Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    contenitore non carica filmato esterno

    ciao, sto muovendo i primi passi con CS4 e voglio fare una cosa molto semplice :

    un layer con una immagine di sfondo bella grande e un bottone che cliccato fa partire un swf in un riquadro più o meno al centro dello sfondo (un libro interattivo da sfogliare).
    quindi creo un nuovo layer, un nuovo symbol MovieClip di nome container e il seguente codice :

    codice:
    var loader:Loader = new Loader(); 
    loader.load(new URLRequest('pageflip.swf'));  
    container.addChild(loader);
    ma mi dà questo errore :

    codice:
    1061: Call to a possibly undefined method addChild through a reference with static type Class.
    e poi quando devo devo definire l'azione del bottone devo usare la visibilità del layer oppure in un altro modo ?

    grazie 1000 !
    rm -f stupidity

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Ti dice che stai richiamando una funzione che non appartiene a quel determinato elemento, può essere che non veda "container" come MovieClip (anche se è abbastanza strano).
    Prova a forzare il tipo così: MovieClip(container).addChild(loader)

    e poi quando devo devo definire l'azione del bottone devo usare la visibilità del layer oppure in un altro modo ?
    Non ho proprio capito cosa intendi in questa parte del post.

  3. #3
    grazie.

    anche a me pare che non veda quel MovieClip "container". Comunque anche forzando mi dà errore dicendo che non può convertire il tipo :

    codice:
    TypeError: Error #1034: Type Coercion failed: cannot convert container$ to flash.display.MovieClip.
    domanda idiota : ma container devo dichiararlo da qualche parte ? mi sembra strano perchè nelle proprietà di container è settato "export for ActionScript". Poi il campo Class è settato a "container", mentre Base Class è settato a "flash.display.MovieClip" se può aiutare.


    la seconda domanda era semplicemente che cosa devo fare per far sì che il filmato compaia e parta nel container quando clicco il bottone, ma penso basta fare qualcosa del genere :

    codice:
    SimpleButton(start_button).addEventListener(
      MouseEvent.MOUSE_UP,
      function(evt:MouseEvent):void {
        container.addChild(loader) ;
      }
    );
    e anche per il simbolo "start_button" mi dà lo stesso identico problema, sembra che non li veda
    rm -f stupidity

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Nel thread dicevi che il "container" si trova sullo stage, perchè tenti di concatenarlo? Non è necessario.

    Per la seconda domanda, ok puoi fare così per la visualizzazione sullo stage, ma attento perchè nel momento in cui lo carichi, se non lo visualizzi subito, andrà avanti comunque da solo anche se non viene "visto" sullo stage, addChild serve solo ad aggiungerlo alla lista di visualizzazione, quindi opterei nel pulsante per il richiamo del load, quindi:

    Codice PHP:
    var loader:Loader container.addChild(new Loader()) as Loader;
    start_button.addEventListener(
      
    MouseEvent.MOUSE_UP,
      function(
    evt:MouseEvent):void {
        
    loader.load(new URLRequest("pageflip.swf"));
      }
    ); 

  5. #5
    ok grazie mille. praticamente non avevo settato l'instance name, che pirla che sono.

    quindi adesso riesco a cliccare sul bottone e a far comparire l'swf di questo libro da sfogliare.
    il problema è che vorrei farlo aprire a una determinata pagina con una funzione che si chiama gotoPage(bla,bla) interna al filmato del libro.
    Ma come faccio a chiamare una funzione di un filmato da un altro fla ESTERNO ? si può fare o devo seguire un'altra strada ?


    il sorgente di questo pageflip si trova qui (moolto carino) : http://www.pageflip.hu/free.php
    rm -f stupidity

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Certo, si può fare tutto, una volta che tale filmato è stato inizializzato.
    Basta aggiungere un "listener" che verifichi l'evento Event.INIT e dentro alla funzione associata è possibile eseguire le azioni direttamente legate al filmato esterno, riportandolo sul codice visto in precedenza:

    Codice PHP:
    var loader:Loader container.addChild(new Loader()) as Loader;
    loader.contentLoaderInfo.addEventListener(Event.INITinitHandler);
    function 
    initHandler (evt:Event):void {
        
    loader.content.gotoToPage(ecc...)
    }
    start_button.addEventListener(
      
    MouseEvent.MOUSE_UP,
      function(
    evt:MouseEvent):void {
        
    loader.load(new URLRequest("pageflip.swf"));
      }
    ); 

  7. #7
    ottimo! non lo sapevo. grazie 1000.

    adesso però mi rendo conto che caricare un swf esterno crea problemi nel caso di risoluzioni diverse.

    cioè se il mio filmato di background viene posto nella pagina html con width="100%" e height="100%", quando carico il libro si ingrandisce tornando alle dimensioni originali. In altre parole variando le risoluzioni dello schermo il filmato di sfondo si scala bene, mentre quello aggiunto con addChild no.

    come fare per adattare anche il filmato del libro (che è quindi figlio) alle varie risoluzioni ?
    rm -f stupidity

  8. #8
    Con una risoluzione di 1024x768 si vede chiaramente come all'esecuzione di addChild(FILMATO_LIBRO) il background si ingrandisca (effetto che voglio evitare)

    qui : http://www.piazzatodiscena.it/libro/...todiscena.html

    che fare ?
    rm -f stupidity

  9. #9

    SOLVED

    Ho risolto : nel codice di pageflip c'era questa riga che impediva lo scaling :


    Codice PHP:
    Stage.scaleMode "noScale"
    rm -f stupidity

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.