Commentçamarche.net
CodeS-SourceS
Rechercher un code, un tuto, une réponse

Effet rideaux de theatre en action script

0/5 (13 avis)

Vue 54 039 fois - Téléchargée 7 424 fois

Description

Ce fla vous permet de faire une animation dans le style levé de rideau TATANNNN !... Bréf rien de magique, à par qu'elle est faite en action script, ce qui vous permettra de la paramétrer un peu ;) ...

C'est ma premiére source sur flashKod, et je viens de commencer l'action script il y à trés peu de temps. Au niveau algo je me débrouille, mais je pige pas tout encore au niveau du fonctionement. C'est pour cela que je me pose 2 questions :

1 : Serait-il possible de dupliquer seulement les images de la bibliothéque sans pour autant passer par des movieclip - Je trouve ça fouilli qu'elles y soient en double.?

2 : Peut-on faire un symétrie axiale en flash ? Comme ça juste avec un seul rideau j'aurais pû tout faire ...

Source / Exemple :


// LA BIBLIOTHEQUE CONTIENT EN REALITE DEUX MOVIECLIP :
// rideaux -> L'image d'un rideau gauche
// rideaux_droite -> L'image d'un rideau a droite

// ------------------------- VERSION 2
// PARAMETRAGE DE L'ANIM
var top = -10;
var espace = 30;
var m_rand_esp = 10;
var rand_niveau = 2;
var nbRideaux = 9;
var decalage = 12;
var vitesse = 1;
var cID = _root.nbRideaux;
var vitesse_rotation = 0.2;
var vitesse_mvt = 1; // 1 = Maxi - 100 = Normal
var max_rotation = 8;
var timer = 0;

tirer = function (id, direction) { 
	var rideau = _root["r"+id];
	if (!_root["dir"+id]) {
		_root["dir"+id] = direction;
	}
	rideau._rotation += _root.vitesse_rotation * _root["dir"+id];
	if (rideau._rotation * _root["dir"+id]>=_root.max_rotation) {
		_root["dir"+id] *= -1;
	}
	
	rideau._x -= _root.vitesse * direction;
	if (rideau._x<-80 || rideau._x>570) {
		clearInterval(_root["timer"+id]);
	}
};

attendre = function () { 
	_root.timer += 1;
	if (_root.timer>_root.decalage) {
		_root.timer = 0;
		_root.cID -= 1;
		if (_root.cID<0) {
			clearInterval(_root.debutID);
		} else {
			_root["timer"+_root.cID] = setInterval(tirer, _root.vitesse_mvt, _root.cID, 1);
			var droite = _root.nbRideaux * 2 - _root.cID - 1;
			_root["timer"+droite] = setInterval(tirer, _root.vitesse_mvt, droite, -1);
		}
	}
};

for(i=0; i<nbRideaux; i++) {
	_root.attachMovie("rideaux", "r"+i, nbRideaux-i);
	_root["r"+i]._y = top + random(rand_niveau);
	_root["r"+i]._x = (i*espace) + (random(m_rand_esp) - (m_rand_esp/2));	
}
for(i=nbRideaux; i<nbRideaux*2; i++) {
	_root.attachMovie("rideaux_droite", "r"+i, i+1);
	_root["r"+i]._y = top + random(rand_niveau);
	_root["r"+i]._x = (i*espace) + (random(m_rand_esp) - (m_rand_esp/2));	
}

var debutID = setInterval(attendre, 1);
stop();

// ------------------------- VERSION 1
// PARAMETRAGE DE L'ANIM
var nbRideaux = 9;
var decalage = 12;
var vitesse = 1;
var cID = _root.nbRideaux;
var vitesse_rotation = 1;
var vitesse_mvt = 1; // 1 = Maxi - 100 = Normal
var max_rotation = 20;
var timer = 0;

tirer = function (id, direction) { 
	var rideau = _root["r"+id];
	if (rideau._rotation * direction<_root.max_rotation) {
		rideau._rotation += _root.vitesse_rotation * direction;
	} else {
		rideau._x -= _root.vitesse * direction;
		if (rideau._x<-40 || rideau._x>530) {
			clearInterval(_root["timer"+id]);
		}
	}
};

attendre = function () { 
	_root.timer += 1;
	if (_root.timer>_root.decalage) {
		_root.timer = 0;
		_root.cID -= 1;
		if (_root.cID<0) {
			clearInterval(_root.debutID);
		} else {
			_root["timer"+_root.cID] = setInterval(tirer, _root.vitesse_mvt, _root.cID, 1);
			var droite = _root.nbRideaux * 2 - _root.cID - 1;
			_root["timer"+droite] = setInterval(tirer, _root.vitesse_mvt, droite, -1);
		}
	}
};

for(i=0; i<nbRideaux; i++) {
	_root.attachMovie("rideaux", "r"+i, nbRideaux-i);
	_root["r"+i]._y = -20;
	_root["r"+i]._x = i*30;	
}
for(i=nbRideaux; i<nbRideaux*2; i++) {
	_root.attachMovie("rideaux_droite", "r"+i, i+1);
	_root["r"+i]._y = -20;
	_root["r"+i]._x = i*30;	
}

var debutID = setInterval(attendre, 1);
stop();

Conclusion :


Cette source est la réponse au souhait de l'auteur ayant rédigé cette source :
http://www.flashkod.com/codes/EFFET-RIDEAU-DE-THEATRE/30591.aspx

BurnSide avait dit : "Si quelqu'un sait comment créer l'effet via action script je suis preneur, c à dire via duplicate movie clip, et rajout de mouvement sur chaque movie clip dupliqués."

Bonne prog à tous, akh

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.