Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    93

    Movieclip casuali e in dissolvenza

    Salve a tutti,
    sono tre giorni che sono su questo problema.
    In maniera molto grezza l'ho risolto, ma poi è sorto un nuovo problema e allora mi sono detto ricomincio daccapo facendolo con un array...

    Vorrei realizzare un movie che in ordine casuale ripeta 3 movieclip.
    Le caratteristiche sono che:
    - ogni singolo movieclip ha una sua foto (.png) che appare in DISSOLVENZA, resta un tot di tempo e poi sparisce;
    - quando sparisce un movieclip deve apparirne un altro E NON LO STESSO;
    - una volta finita la sequenza dei movieclip deve RICOMINCIARE dal primo.

    Per far questo ho inserito nel primo frame:

    // mi genera in ordine casuale un array di 3 numeri
    Array.prototype.shuffle = function() {
    var a = this.slice(), b = [];
    for (var i = 0; i<this.length; i++) {
    var n = random(a.length);
    b.push(a[n]);
    a.splice(n, 1);
    }
    return b;
    };

    mioArray = [1,2,3];

    ora come posso dire di mettere sequenzialmente in play i 3 mc?!?
    Inoltre devo costruire 3 movieclip oppure posso farne uno che
    mi carica l'immagine (.png) ogni volta che viene richiamato?!?

    Chi mi illumina?! Negatyve...

    Grazie a tutti.

  2. #2
    Utente di HTML.it L'avatar di Stormy
    Registrato dal
    Dec 2000
    Messaggi
    2,701
    prova così, mi sembra funzionare

    c'è un solo movie clip su cui vengono caricate le foto, ha nome istanza vuoto, le foto le ho chiamate foto1.jpg, foto2.jpg, foto3.jpg

    Array.prototype.shuffle = function() {
    var a = this.slice();
    b = [];
    for (var i = 0; i<this.length; i++) {
    var n = random(a.length);
    b.push(a[n]);
    a.splice(n, 1);
    }
    };

    mioArray = [1,2,3];
    mioArray.shuffle()
    vuoto._alpha=i=tempo=0
    MovieClip.prototype.fadeIn= function(){
    if(this._alpha<100){
    this._alpha+=10
    }else{
    _root.fade=1
    _root.tempo=getTimer()
    }
    }
    MovieClip.prototype.fadeOut=function(){
    if(this._alpha>0){
    this._alpha-=10
    }else{
    _root.dissolvi=0
    _root.carica=0
    }
    }
    this.onEnterFrame= function(){
    if(!carica){
    loadMovie("foto"+b[i]+".jpg",vuoto)
    carica=1
    fade=0
    if(i<b.length-1){
    i++
    }else{
    i=0
    }
    }else{
    if(vuoto.getBytesTotal()!=undefined&&vuoto.getByte sTotal()==vuoto.getBytesLoaded()){
    if(!fade){
    vuoto.fadeIn()
    }
    if(tempo!=0&&getTimer()>tempo+4000){
    dissolvi=1
    tempo=0
    }
    if(dissolvi){
    vuoto.fadeOut()
    }

    }
    }

    }

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    93
    Mamma mia che perfezione!!!
    Grazie mille :tongue:

    Solo una cosa, ho provato con le immagini .png ma non funziona, si può fare nulla?!?

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    93
    Scusa Stormy,
    purtroppo le immagini devono essere per forza in formato .png
    perchè ho applicato una trasparenza.

    Se ho capito bene dovrei utilizzare AttachMovie (invece di loadmovie) e importare tutte le immagini nella libreria. Giusto?

    Dunque...

    this.onEnterFrame= function(){
    if(!carica){
    // loadMovie("foto"+b[i]+".jpg",vuoto)
    this.attachMovie(_root.mc_foto[b[i]], "foto1", 0);
    carica=1
    fade=0
    if(i<b.length-1){
    i++
    }else{
    i=0
    }
    ...


    Ma non funziona!

  5. #5
    Utente di HTML.it L'avatar di Stormy
    Registrato dal
    Dec 2000
    Messaggi
    2,701
    a dire la verità potresti anche utilizzare il vecchio sistema una volta messe le immagini png in swf, la dimensione non viene molto più grande della foto da sola e potresti applicarci un preloader

    mo' provo a vedere perchè l'attach non ti funziona, ma le foto sono esportate vero?

  6. #6
    Utente di HTML.it L'avatar di Stormy
    Registrato dal
    Dec 2000
    Messaggi
    2,701
    Array.prototype.shuffle = function() {
    var a = this.slice();
    b = [];
    for (var i = 0; i<this.length; i++) {
    var n = random(a.length);
    b.push(a[n]);
    a.splice(n, 1);
    }
    };

    mioArray = [1,2,3];
    mioArray.shuffle()
    i=tempo=0
    MovieClip.prototype.fadeIn= function(){
    if(this._alpha<100){
    this._alpha+=10
    }else{
    _root.fade=1
    _root.tempo=getTimer()
    }
    }
    MovieClip.prototype.fadeOut=function(){
    if(this._alpha>0){
    this._alpha-=10
    }else{
    _root.dissolvi=0
    _root.carica=0
    }
    }
    this.onEnterFrame= function(){
    if(!carica){
    this.attachMovie("foto"+b[i], "foto", 1);
    foto._alpha=0
    foto._x=200
    foto._y=200
    carica=1
    fade=0
    if(i<b.length-1){
    i++
    }else{
    i=0
    }
    }else{
    if(!fade){
    foto.fadeIn()
    }
    if(tempo!=0&&getTimer()>tempo+4000){
    dissolvi=1
    tempo=0
    }
    if(dissolvi){
    foto.fadeOut()
    }

    }

    }


    non c'è bisogno di metterle in un movie clip, basta metterle sulla _root e dargli sempre lo stesso nome istanza così si sostituiscono a vicenda, l'unica scocciatura (non caricandole nel movie clip e che devi aggiungere tre righe per settare l'alpha a 0 e la posizione della _x e della _y

  7. #7
    Utente di HTML.it L'avatar di Stormy
    Registrato dal
    Dec 2000
    Messaggi
    2,701
    comunque se volessi caricarle lo stesso in un movie clip, il procedimento giusto è questo

    Array.prototype.shuffle = function() {
    var a = this.slice();
    b = [];
    for (var i = 0; i<this.length; i++) {
    var n = random(a.length);
    b.push(a[n]);
    a.splice(n, 1);
    }
    };

    mioArray = [1,2,3];
    mioArray.shuffle()
    foto_mc._alpha=i=tempo=0
    MovieClip.prototype.fadeIn= function(){
    if(this._alpha<100){
    this._alpha+=10
    }else{
    _root.fade=1
    _root.tempo=getTimer()
    }
    }
    MovieClip.prototype.fadeOut=function(){
    if(this._alpha>0){
    this._alpha-=10
    }else{
    _root.dissolvi=0
    _root.carica=0
    }
    }
    this.onEnterFrame= function(){
    if(!carica){
    foto_mc.attachMovie("foto"+b[i], "foto", 1);
    carica=1
    fade=0
    if(i<b.length-1){
    i++
    }else{
    i=0
    }
    }else{
    if(!fade){
    foto_mc.fadeIn()
    }
    if(tempo!=0&&getTimer()>tempo+4000){
    dissolvi=1
    tempo=0
    }
    if(dissolvi){
    foto_mc.fadeOut()
    }

    }

    }

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    93
    Originariamente inviato da Stormy
    non c'è bisogno di metterle in un movie clip, basta metterle sulla _root e dargli sempre lo stesso nome istanza così si sostituiscono a vicenda, l'unica scocciatura (non caricandole nel movie clip e che devi aggiungere tre righe per settare l'alpha a 0 e la posizione della _x e della _y)
    Scusami, ma mi sono perso!
    Dunque io importo le mie tre immagini .png nella libreria... e poi non devo creare tre movie clip diversi?!
    Che intendi metterle sulla _root e dargli lo stesso nome istanza?! Il nome istanza non va messo solo ai mc?!

    Il secondo metodo che mi hai passato, praticamente l'ultimo, funziona benissimo, però non mi dispiacerebbe avere un movie ad hoc con solo le immagini .png nella libreria.
    Che faccio?

    In questo momento nella mia libreria ho tre immagini .png, tre movie clip e il mc_vuoto...

  9. #9
    Utente di HTML.it L'avatar di Stormy
    Registrato dal
    Dec 2000
    Messaggi
    2,701
    ma tu vuoi mettere i png in un filmato esterno caricato nel filmato principale o vuoi metterle nel filmato principale? probabilmente mi sono confusa in quel punto lì

    lo script serve se le metti nel filmato principale, tu invece vuoi fare un loadmovie?

    se le metti nel filmato principale, devi ovviamente mettere ognuna in un movie clip, questi movie clip devono essere solo nella libreria e devono essere esportati

    poi devi decidere se vuoi caricarle in un movie clip (la comodità con questo procedimento è che puoi stabilire la posizione e l'alfa iniziale settandole nel movie clip in cui le carichi) o sulla _root

    potresti benissimo caricarle direttamente sulla _root aggiungendo quelle tre righe ogni volta che ne attacchi uno

    foto._alpha=0
    foto._x=200
    foto._y=200

    altrimenti se vuoi attaccarle in un movie clip lo script giusto per farlo è questo

    foto_mc.attachMovie("foto"+b[i], "foto", 1);

    e non come avevi scritto tu

    quando parlavo di dare a tutte lo stesso nome, intendevo in questo comando qua

    foto_mc.attachMovie("foto"+b[i], "foto" , 1);

    la parte che ho scritto colorata è in pratica il nome istanza che dai alla foto che carichi con l'attach, se dai sempre lo stesso nome istanza si sostituiscono a vicenda

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    93
    Ok, ok... ci eravamo fraintesi :quote:

    Stavo facendo bene quindi... comunque grazie di cuore perchè
    praticamente hai fatto tutto tu!


    Ciao e grazie ancora.

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.