Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [MX] mosche a random in un'area determinata

    Salve a tutti, ho un grosso problema...

    Sulla scena ho parecchi movieclip, istanziati "mosca1" "mosca2" ecc. (ogni mosca è diversa dalle altre ).
    Devo farle muovere a random in un'area di 340x480 pixel, che dista dal bordo superiore della scena 70 pixel e da quello sinistro 60.

    Premettendo che di ActionScript ne so poco, ho provato ad usare il codice suggerito in questo topic, ma ovviamente posso usarlo solo per una mosca e comunque non riesco a capire come fare a dirle che deve rimanere distante di 70 pixel dall'alto e 60 da sinistra...


    Cosa devo fare??

  2. #2
    up....

  3. #3

    Re: [MX] mosche a random in un'area determinata

    Originariamente inviato da paola84
    Salve a tutti, ho un grosso problema...

    Sulla scena ho parecchi movieclip, istanziati "mosca1" "mosca2" ecc. (ogni mosca è diversa dalle altre ).
    Devo farle muovere a random in un'area di 340x480 pixel, che dista dal bordo superiore della scena 70 pixel e da quello sinistro 60.

    Premettendo che di ActionScript ne so poco, ho provato ad usare il codice suggerito in questo topic, ma ovviamente posso usarlo solo per una mosca e comunque non riesco a capire come fare a dirle che deve rimanere distante di 70 pixel dall'alto e 60 da sinistra...


    Cosa devo fare??
    una cosa del genere forse
    codice:
    //	larghezza, altezza clip 
    //	origine x,y e dimensioni 'area di movimento'
    //	posizione iniziale clip
    mcLar = mc._width;
    mcHal = mc._height;
    areaX = 300;
    areaY = 400;
    areaLar = 40;
    areaHal = 80;
    mcStartX = (areaX+areaLar)/2-mcLar/2;
    mcStartY = (areaY+areaHal)/2-mcHal/2;
    mc._x = mcStartX;
    mc._y = mcStartY;
    //
    //	funzione muovi clip random
    MovieClip.prototype.moveRandom = function(nomeClip, posX, posY, speed) {
    	this[nomeClip].onEnterFrame = function() {
    		with (this) {
    			_x += (posX-_x)/speed;
    			_y += (posY-_y)/speed;
    		}
    	};
    };
    //
    //	chiamata funzione ogni 1 sec.
    setInterval(function () {
    	moveRandom("mc", (random((areaX+areaLar)-mcLar))+60, (random((areaY+areaHal)-mcHal))+70, 5);
    }, 1000);
    ciao
    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 !

  4. #4
    Il problema è che così si muove una mosca sola...

    EDIT: sono riuscita a far muovere due mosche contemporaneamente, così:

    codice:
    areaX = 300;
    areaY = 400;
    areaLar = 40;
    areaHal = 80;
    //	funzione muovi clip random
    MovieClip.prototype.moveRandom = function(nomeClip, posX, posY, speed) {
    	this[nomeClip].onEnterFrame = function() {
    		with (this) {
    			_x += (posX-_x)/speed;
    			_y += (posY-_y)/speed;
    		}
    	};
    };
    //	chiamata funzione ogni 1 sec.
    setInterval(function () {
    	moveRandom("mosca1", random((areaX+areaLar)-mcLar), random((areaY+areaHal)-mcHal), 5);
    }, 1000);
    //	chiamata funzione ogni 0,5 sec.
    setInterval(function () {
    	moveRandom("mosca2", random((areaX+areaLar)-mcLar), random((areaY+areaHal)-mcHal), 5);
    }, 500);
    ma continuano a non rimanere nell'area...
    Questo è l'swf: prova con due mosche.

  5. #5
    a me così funge bene
    codice:
    //	larghezza, altezza clip 
    //	origine x,y e dimensioni 'area di movimento'
    //	posizione iniziale clip
    mcLar = mc._width;
    mcHal = mc._height;
    areaX = 300;
    areaY = 400;
    areaLar = 40;
    areaHal = 80;
    mcStartX = (areaX+areaLar)/2-mcLar/2;
    mcStartY = (areaY+areaHal)/2-mcHal/2;
    mc._x = mcStartX;
    mc._y = mcStartY;
    //
    //	funzione muovi clip random
    MovieClip.prototype.moveRandom = function(nomeClip, posX, posY, speed) {
    	this[nomeClip].onEnterFrame = function() {
    		with (this) {
    			_x += (posX-_x)/speed;
    			_y += (posY-_y)/speed;
    		}
    	};
    };
    //
    //	chiamata funzione ogni 1 sec.
    setInterval(function () {
    	moveRandom("mc", (random((areaX+areaLar)-mcLar))+60, (random((areaY+areaHal)-mcHal))+70, 5);
    }, 1000);
    setInterval(function () {
    	moveRandom("mc1", (random((areaX+areaLar)-mcLar))+60, (random((areaY+areaHal)-mcHal))+70, 5);
    }, 1000);
    ciao
    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 !

  6. #6
    L'ho copiato pari pari, ma continuano ad andare fuori dall'area colorata


  7. #7
    Originariamente inviato da paola84
    L'ho copiato pari pari, ma continuano ad andare fuori dall'area colorata

    e che ti devo dire a me sembra fungere guarda tu stesso
    qui

    ciao
    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 !

  8. #8
    creao 2 mc sullo stage istanziali mc e mc1

    poi copi e incolli
    codice:
    //	larghezza, altezza clip 
    //	origine x,y e dimensioni 'area di movimento'
    //	posizione iniziale clip
    mcLar = mc._width;
    mcHal = mc._height;
    mc1Lar = mc1._width;
    mc1Hal = mc1._height;
    areaX = 400;
    areaY = 300;
    areaLar = 40;
    areaHal = 0;
    mcStartX = (areaX+areaLar)/2-mcLar/2;
    mcStartY = (areaY+areaHal)/2-mcHal/2;
    mc1StartX = (areaX+areaLar)/2-mcLar/2+10;
    mcS1tartY = (areaY+areaHal)/2-mcHal/2+10;
    mc._x = mcStartX;
    mc._y = mcStartY;
    mc1._x = mc1StartX;
    mc1._y = mc1StartY;
    //
    //	funzione muovi clip random
    MovieClip.prototype.moveRandom = function(nomeClip, posX, posY, speed) {
    	this[nomeClip].onEnterFrame = function() {
    		with (this) {
    			_x += (posX-_x)/speed;
    			_y += (posY-_y)/speed;
    		}
    	};
    };
    //
    //	chiamata funzione ogni 1 sec.
    setInterval(function () {
    	moveRandom("mc", (random((areaX+areaLar)-mcLar))+60, (random((areaY+areaHal)-mcHal))+70, 5);
    }, 1000);
    setInterval(function () {
    	moveRandom("mc1", (random((areaX+areaLar)-mc1Lar))+60, (random((areaY+areaHal)-mc1Hal))+70, 5);
    }, 1000);
    ho provato così e funziona

    @ crescenzo ciao dottò

    Consulenza aziendale a 360° http://www.gruppodg.it http://www.gruppodg.it/3d
    Realizzazione siti internet, Siti Flash, Ricerca Location per bar negozi , esercizi commerciali, sviluppo pratiche e allestimento

  9. #9
    Di sicuro sbaglio qualcosa >___<
    Non è che il problema sta nel fatto che le mie mosche sono due movieclip diversi e non due istanze dello stesso movieclip?

    Comunque, grazie mille per l'aiuto!

  10. #10
    no non significa niente l'importante è dare il giusto nome istanza al clip
    Consulenza aziendale a 360° http://www.gruppodg.it http://www.gruppodg.it/3d
    Realizzazione siti internet, Siti Flash, Ricerca Location per bar negozi , esercizi commerciali, sviluppo pratiche e allestimento

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.