Ajouter du reflet sur un objet plane style carrousel
cs_Alex001
Messages postés32Date d'inscriptionmercredi 25 juillet 2001StatutMembreDernière intervention20 janvier 2009
-
20 janv. 2009 à 23:43
sep2vigne
Messages postés50Date d'inscriptionlundi 17 mars 2008StatutMembreDernière intervention29 janvier 2010
-
21 janv. 2009 à 00:11
Bonjour à tous,
Je code actuellement un site en flash AS3.
Avec l'aide de plusieurs sources j'ai fini par créer des planes qui charges des images a partir d'un xml, puis les planes sont créer dans un conteneur avec un chemin cylindrique pour le mouvement.
J'essaye d'ajouter un plane inversé avec un degradé pour créer l'effet du reflet au sol.
Mais je n'y arrive pas, a chaque teste l' AS3 ne reagit plus.
Voici mon code de chargement des images et création des objets planes, qui fonctionne très bien.
Je n'ai pas ajouter le code du reflet car j'espère que quelqu'un pourra m'indiqué une nouvelle issue.
var p_dict:Dictionary=new Dictionary();
var pc:Plane = new Plane();
pc.visible = false;
cam.target = pc;
var numOfRotations:Number = 3;
var yPos:Number = 0;
var angle:Number = 0;
var filename_list = new Array();
var url_list = new Array();
var url_target_list:Array = new Array();
var title_list = new Array();
var description_list = new Array();
var folder:String = "thumbnails/";
var i:Number;
var j:Number = 0;
var k:Number = 0;
var l:Number = 0;
var m:Number = 0;
var total:Number;
var flashmo_xml:XML = new XML();
var loader:URLLoader = new URLLoader();
loader.load(new URLRequest("thumbnail_list_3.xml"));
loader.addEventListener(Event.COMPLETE, create_thumbnail);
function create_thumbnail(e:Event):void
{
flashmo_xml = XML(e.target.data);
total = flashmo_xml.thumbnail.length();
var anglePer:Number = ((Math.PI*2) * numOfRotations) / total;
cs_Alex001
Messages postés32Date d'inscriptionmercredi 25 juillet 2001StatutMembreDernière intervention20 janvier 2009 20 janv. 2009 à 23:54
Voici le code que j'ai testé pour créer le reflet. malheureusement le code as3 ne s'execute plus !
p_container.duplicateMovieClip("image2", _root.getNextHighestDepth());
image2._yscale *= -1; //On retourne le nouveau clip
inter = setInterval(down, 100); //On créé un interval qui s'exécutera dans 100 millisecondes
function down(){ //Au bout de 100 millisecondes la fonction down est éxécutée
image2._y = image._height * 2; //L'image étant chargée on peut descendre image2
degrade._y = image._height; //On descend le dégradé
degrade._height = image._height; //On adapte la hauteur du dégradé à la hauteur du 1er clip
degrade._width = image._width; //On adapte la largeur du dégradé à la largeur du 1er clip
clearInterval(inter); //On détruit l'interval sinon le clip descendra toutes les 100 millisecondes
}
degrade.swapDepths(image2); //On pass le dégradé au 1er plan (on inverse avec le clic duppliqué)
sep2vigne
Messages postés50Date d'inscriptionlundi 17 mars 2008StatutMembreDernière intervention29 janvier 2010 21 janv. 2009 à 00:11
Salut, j'ai pas regardé en détail ton code mais il me semble que tu utilises _height et _width
> en AS3 les "_" n'existent plus.
_alpha = alpha
_height = height
_width = width