Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- control_mc.onEnterFrame = function() {
- createSnow();
- };
- function createSnow() {
- /* Crea un copo de nieve a partir del patrón SnowFlake que está en la biblioteca */
- i = _root.getNextHighestDepth();
- tmp = _root.attachMovie("SnowFlake", "snowflake_mc"+i, i);
- /* El copo de nieve cae desde una posición horizontal en [1,550] */
- tmp._x = randRange(1, 550);
- /* Inicialmente, se coloca el copo de nieve fuera del escenario */
- tmp._y = -1;
- /* Ahora se particulariza el copo de nieve estableciendo aleatoriamente su transparencia, * velocidad y tamaño */
- tmp._alpha = randRange(50, 100);
- tmp.speed = randRange(1, 10);
- tmp._xscale = randRange(70, 110);
- tmp._yscale = tmp._xscale;
- /* Todo copo de nieve inicia su descenso inmediatamente después de creado */
- tmp.moving = true;
- /* moveSnow es responsable de la dinámica del copo de nieve */
- tmp.onEnterFrame = moveSnow;
- }
- function moveSnow() {
- /* Si el copo está en movimiento... */
- if (this.moving) {
- /* El copo desciende según su velocidad prefijada */
- this._y += this.speed;
- /* Para mayor realismo, el copo experimenta un desplazamiento lateral, oscilatorio */
- this._x += Math.cos(this._y/10);
- /* Si el copo colisiona con Ice_mc detenerlo. Como no se desea que el copo
- permanezca detenido indefinidamente, se utilizará un contador (stopCounter)
- para verificar que transcurra un tiempo prudente antes de remover el copo */
- if (this.hitTest(_root.rect_mc.Ice_mc)) {
- this.moving = false;
- this.stopCounter = 0;
- }
- /* Finalmente, los copos que lleguen al suelo serán eliminados de inmediato */
- if (this._y>327) {
- removeMovieClip(this);
- }
- } else {
- /* Entrar aquí implica que el copo está detenido por colisionar con Ice_mc. Por ende,
- se incrementa el contador stopCounter, y si éste supera la cota superior
- preestablecida, se procede a eliminar el copo */
- this.stopCounter++;
- if (this.stopCounter>500) {
- this.onEnterFrame = null;
- this.removeMovieClip();
- }
- }
- }
- function randRange(min:Number, max:Number):Number {
- var randomNum:Number = Math.floor(Math.random()*(max-min+1))+min;
- return randomNum;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement