Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: MovieClip.scrollRect

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    29

    MovieClip.scrollRect

    Salve, ho cercato invano per giorni tra siti italiani, inglesi e di tutto il mondo, delucidazioni sulla proprietà di AS2: MovieClip.scrollRect che (a quanto "MI" pare) permette un scroll fluido come in questo esempio: www.sephiroth.it/tutorials/flashPHP/scrollRect/.
    Diciamo che trovandolo mi pareva di aver risolto i problemi dato che è proprio ciò che cercavo. Invece no... perché in questo tutorial è possibile scaricare i files utilizzati per l'esempio ma senza il .fla. Ovvero solamente il file di codice .as e l'.swf. Ora... una volta modificato il codice esterno .as secondo le mie esigenze, come faccio a ricompilare l'swf???
    Si tratta di uno scroll bello fluido di un'immagine "image.jpg". Intervenendo sul file .as vorrei modificare "image.jpg" con "image.swf", per poter scrollare un'altra animazione da me creata.
    Ho provato su un .fla nuovo a incorporare il codice .as ma il comando #include mi da errore penso perchè il codice .as è AS2 è il comando vale solo per AS1.
    Non ci vado più fuori sul serio... è 3 giorni che cerco.
    Ho trovato un altro sito moolto interessante,, con uno scroll simile parecchio interessante, ma anche decompilandolo ed esportando il.fla, non riesco a ricreare l'effetto.www.redbullcreativitycontest.be/.
    Grazie a chiunque mi dia una mano.

  2. #2
    A questo hai già dato un'occhiata => http://flash.html.it/articoli/leggi/...re-scrollrect/ ?

    C'è anche lo zip scaricabile con i file FLA di esempio.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    29
    si avevo già guardato e devo dire che non era neanche male, solo che poi l'avevo abbandonata come idea perché mi interessa molto il movimento fluido con accelerazione e decelerazione tipo gli esempi che ho postato prima...
    Dici proprio non sia possibile avendo quel fila .as a ricompilare un nuovo swf... come nell'esempio qui? www.sephiroth.it/tutorials/flashPHP/scrollRect/.

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    solo una nota a margine... decompilare swf altrui è illegale, cerchiamo di evitare...

  5. #5
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    torno IT segnalando che l'errore dell'include utilizzando AS2 è evitabile procedendo in questo modo

    1. si crea una cartella con un nome qualsiasi nella stessa cartella in cui è contenuto il .fla (mettiamo di chiamarla "commons")
    2. si inserisce il file .as dentro quella cartella
    3. nell'include fatto sul .fla si inserisce il percorso completo -> #include "commons/file.as", ricordandosi di non concludere la riga dell'include con il ";" che si usa di solito nel codice


    [edit] mmh, ho appena letto il tutorial, in particolare queste righe

    Notice that this tutorial will not provide any .fla file because this swf has been compiled using this class with mtasc as compiler
    non è un #include che ci vuole, bisogna importare la classe, poi eliminare queste ultime due righe
    codice:
    public static function main():Void{
    var app:Slider2 = new Slider2(_root, "files/image.jpg")
    }
    e riproporre nel .fla questa

    var app:Slider2 = new Slider2(_root, "files/image.jpg");

    in questo caso il .as deve stare nella stessa cartella del .fla

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    29
    Scusami ma proprio no sapevo fosse illegale il solo decompilare un .fla
    Grazie per i suggerimenti, provo la procedura appena posso e poi vi so dire nel caso fosse utile a qualcun'altro. Grazie ancora

  7. #7
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    ho provato il metodo che ti ho suggerito, ma ovviamente non va perchè la classe formata per MTASC funziona in maniera leggermente diversa da Flash

    allora, nella classe oltre alla modifica che ti ho suggerito, devi anche modificare questa riga, una delle prime in alto

    private function Slider2(scope:MovieClip, file:String)

    levando "private" e quindi ottenendo la riga

    function Slider2(scope:MovieClip, file:String)

    dovrebbe funzionare correttamente poi

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    29
    and80 devo proprio ringraziarti perché "magicamente" il file funziona benissimo e correttamente... praticamente non ci sarei mai arrivato neanche con 10 manuali di actioscript 2 davanti.
    Ora riepilogo nel caso fosse utile...
    allora ho preso il file .as e l'ho modificato secondo le istruzioni di and80 dando infine questo codice:

    ---------------------------------------------------------
    codice:
    import mx.utils.Delegate
    import flash.geom.Rectangle
    import flash.geom.Point
    import flash.filters.DropShadowFilter
    
    class Slider2
    {
        private var image:MovieClip
        private var target:MovieClip
        private var mouse:Point
        private var rect:Rectangle
        private var r_img:Rectangle
        private var r_mask:Rectangle
        private var _drop:DropShadowFilter
        private var mc_loader:MovieClipLoader
        private var x_pos:Number
        private var y_pos:Number
    
        function Slider2(scope:MovieClip, file:String)
        {
            image  = scope.createEmptyMovieClip("image", 1)
            image._x = 00
            image._y = 00
            image.cacheAsBitmap = true
            target = scope
    
            rect = new Rectangle(0, 0, 700, 700)
            mouse  = new Point(0,0)
            _drop  = new DropShadowFilter(3,45, 0x00, 30, 5, 5, .5)
            x_pos = 0
            y_pos = 0
    
            load(file)
        }
    
        /**
         * Load the image file
         */
        private function load(file:String)
        {
            mc_loader = new MovieClipLoader()
            mc_loader.addListener(this)
            mc_loader.loadClip(file, image)
        }
    
        /**
         * Once image has been loaded
         * apply filters to the image movieclip
         * and start the animation
         */
        private function onLoadInit(tg:MovieClip):Void
        {
            image.filters = [_drop]
            r_img  = new Rectangle(0, 0, image._width, image._height)
            r_mask = new Rectangle(image._x, image._y, rect.width, rect.height)
            start();
        }
    
        public function start():Void
        {
            image.scrollRect = rect
            image.onEnterFrame = Delegate.create(this, enterframe)
        }
    
        /**
         * main enteframe function
         * check mouse position and
         * scroll the image
         */
        private function enterframe():Void
        {
            mouse.x = target._xmouse
            mouse.y = target._ymouse
            if(r_mask.containsPoint(mouse))
            {
    
                y_pos = ((Math.abs(image._y - mouse.y)/rect.height)*(r_img.height-rect.height))
                x_pos = ((Math.abs(image._x - mouse.x)/rect.width)*(r_img.width-rect.width))
            }
    
            rect.x += (x_pos - rect.x)/8
            rect.y += (y_pos - rect.y)/8
    
            image.scrollRect = rect
        }
    }
    ---------------------------------------------------------

    poi, nel file .fla ho inserito il richiamo alla classe con:

    codice:
    var app:Slider2 = new Slider2(_root, "files/esempio.swf");
    In questo caso a me interessava far scrollare un'altra animazione, ma è possibile mettere una qualsiasi immagine... Dopodiché bastera esportare il filmato scroller.swf e tutto funzionerà.
    Inoltre, la gerarchia finale delle cartelle con i rispettivi file è quindi:

    Cartella principale --> "Scroller"

    Scroller (che contiene: "Slider2.as" - "scroller.fla" - "scroller.swf")
    ||
    files (che contiene: esempio.swf )



    GRAZIE ancora a tutti, specialmente a and80.
    Ah... se te ne intendi anche di javascript o asp, puoi dare anche un occhio QUI, dato che non mi sa dar risposta nessuno ancora? Grazie ancora!
    Simone

  9. #9
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    lavoro più che altro con PHP, e non ne so tantissimo neanche di JS

    non voglio andare troppo OT, perciò ti do una spiegazione brevissima:

    se non ricordo male, nei referer quando richiami la pagina, hai la possibilità di verificare la sigla del provider che ha richiamato la pagina, non è detto comunque che il provider sia della stessa nazione del client e quindi non è detto che il redirect sia corretto per quel client

    attendi ancora qualche risposta in quel thread e al massimo riportalo a galla dopo qualche ora con un "UP", vedrai che qualcuno risponderà

  10. #10
    ciao a tutti, ripropongo il thread in quanto molto interessante..... almeno per me....

    seguendo la discussione sono riuscito ad ottenere lo scroll dell'immagine..
    siccome la posizione dell'immagine la imposto io e la centro all'interno di uno spazio
    quello che vorrei sapere e' se e' possibile impostare dinamicamente anche le dimensioni del "rettangolo"

    cosi' cartico l'imamgine in _root.big e poi lo posiziono..
    codice:
     var app:Slider2 = new Slider2(_root.big, "portfolio/big/"+array[foto].image);
    _root.big._x=(Stage.width/2+135)-(400);
    _root.big._y=(Stage.height/2)-(300);
    praticamente nel file .as c'e':
    rect = new Rectangle(0, 0, 800,600)

    a me servirebbe che sia dinamico l'800 e il 600, e' possibile essendo esterno il file?

    se necessario ne apro una nuova di discussione....

    grazie

    -Nextart.it Graphic Solutions

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.