Soyez le premier à donner votre avis sur cette source.
Vue 7 655 fois - Téléchargée 689 fois
// ---------------------------------------------------- // - Tomboul (tomboul@lamarmite.fr) http://ww.lamarmite.fr // - 02/2008 // - test du composant WheelMedia // ---------------------------------------------------- import fl.video.* import fl.containers.*; import fl.controls.*; import marmite.*; Security.loadPolicyFile("http://www.lamarmite.fr/crossdomain.xml") // ------------------------------- // gestion debug // ------------------------------- var bug:debugTrace = new debugTrace("testClip"); bug.out=false; /*bug.stageDebug=stage;*/ bug.addDebugFonc("WheelModified",true); bug.addDebugFonc("XmlModified",true); bug.addDebugFonc("handleMediaLoaded",true); bug.addDebugFonc("initDynamicDisplay",true); bug.addDebugFonc("initStaticDisplay",true); bug.addDebugFonc("WheelMedia-initWheel",true); bug.addDebugFonc("WheelMedia-clearWheel",true); bug.addDebugFonc("WheelMedia-drawThumbs",false); bug.addDebugFonc("WheelMedia-drawThumb",false); bug.addDebugFonc("WheelMedia-addMedia",false); bug.addDebugFonc("WheelMedia-changeDefile",true); bug.addDebugFonc("WheelMedia-outDefile",true); bug.addDebugFonc("WheelMedia-draw",true); bug.addDebugFonc("WheelMedia-readDataAndInitMedia",true); bug.addDebugFonc("WheelMedia-finDuChargement",true); bug.addDebugFonc("WheelMedia-clearMedia",true); bug.addDebugFonc("WheelMedia-initMedia",true); bug.addDebugFonc("WheelMedia-initClipMedia",true); bug.addDebugFonc("Wheel-_rotatePoints",false); bug.addDebugFonc("Wheel-setSides",true); bug.addDebugFonc("Wheel-stop",true); bug.addDebugFonc("Wheel-start",true); bug.addDebugFonc("Wheel-Wheel",true); bug.memory=true; /*bug.traceArea=traceText; bug.traceFunction("all"); bug.memory=false; bug.traceArea=null; bug.log=true; bug.urlLog="http://127.0.0.1/testFlash";*/ // ------------------------------- // VARIABLES D'AFFICHAGE // ------------------------------- // affichage statique var debug_chk:CheckBox=new CheckBox(); var vertical_chk:CheckBox=new CheckBox(); var incr_input:TextInput=new TextInput(); var sensible_input:TextInput=new TextInput(); var vitesse_input:TextInput=new TextInput(); var valid_btn:Button=new Button(); var xml_btn:Button=new Button(); var allFonc:Button=new Button(); var xml_input:TextArea=new TextArea(); var traceText:TextArea=new TextArea(); // evement pour le bouton de validation des modifications valid_btn.addEventListener(MouseEvent.CLICK, WheelModified); xml_btn.addEventListener(MouseEvent.CLICK, XmlModified); allFonc.addEventListener(MouseEvent.CLICK, debugAllFonc); // affichage dynamique (selon vertical ou horizontal) // coordonnées clip du calque WheelMedia en fonction // du type de défilement (horizontal ou vertical) var coord_V:Object ={ Wheel:Object({w:90 ,h:360,x:48 ,y:209,r:0}), titre: Object({w:452,h:26 ,x:96,y:28}), media: Object({w:452,h:338,x:96,y:58})}; var coord_H:Object ={ Wheel:Object({w:370,h:80,x:275,y:364,r:0}), titre: Object({w:372,h:26 ,x:89,y:54}), media: Object({w:370,h:244,x:91,y:80})}; var vid:VideoPlayer; var pict:UILoader; var titre:TextArea=new TextArea(); var mc:Sprite = new Sprite(); initStaticDisplay(); // ------------------------------- // COMPOSANT WheelMedia // ------------------------------- var Wheel:WheelMedia = new WheelMedia(); Wheel.debug=bug; Wheel.xmlFile="defileMedia.xml"; Wheel.vitesse=80; Wheel.sensible=4; Wheel.incr=-1; Wheel.sensDefilement="horizontal"; WheelCoord(coord_H); // gestion de l'évenement loaded du composant WheelMedia présent sur la scène Wheel.addEventListener(mediaEvent.MEDIA_LOADED, handleMediaLoaded); addChild(Wheel); // ------------------------------- // VARIABLES GLOBALES // ------------------------------- var pathVideo:String; var pathImage:String; var isPict:Boolean=false; var isVid:Boolean=false; // ------------------------------- // fin chargement WheelMedia // ------------------------------- function handleMediaLoaded(e:mediaEvent):void { bug.fonction("handleMediaLoaded",true); if(e.mediaOK.result==true) { bug.trace("OK"); // récupère les données XML var galerie:XML=Wheel.WheelMediaData; // chemin pour les formats moyens des medias pathVideo=galerie.dossier.video.@url+galerie.dossier.video.@normales; pathImage=galerie.dossier.image.@url+galerie.dossier.image.@normales; // titre global titre.text="Titre : "+galerie.titre.@texte+" ("+e.mediaOK.error+")"; // evenement : media selectionné Wheel.addEventListener(mediaEvent.MEDIA_SELECTED, handleMediaSelected); initDynamicDisplay(); } // echec else { trace("ECHEC"+e.mediaOK.error); // (voir à ajouter une info texte de l'erreur titre.text="erreur chargement des médias : "+e.mediaOK.error; } // trace de tout les enfants présent sur la scène debugAllFonc(null) bug.finFonction(); } // ------------------------------- // e:mediaEvent est un objet contenant deux objet de type XML // data : contenu de la ligne xml <media ....> selectionnée // dossier : contenu des informations des path (voir xml) // musique : contenu des informations musicales (voir xml) // ------------------------------- function handleMediaSelected(e:mediaEvent):void { bug.fonction("handleMediaSelected",true); // infos media selectionné var mediaXml:XML=e.mediaData; if(isPict==true) { removeChild(pict); } if(isVid==true) { // stope la video if(vid.state==VideoState.PLAYING) { vid.stop(); vid.close(); removeChild(vid); } } isPict=false; isVid=false; pict=null; vid=null; // image if (mediaXml.@type=="image") { pict = new UILoader(); addChild(pict); bug.trace("image : "+mediaXml.@src); titre.text="Image : "+mediaXml.@titre; pict.source=pathImage+"/"+mediaXml.@src; isPict=true; // video } else if (mediaXml.@type=="video") { vid = new VideoPlayer(); addChild(vid); bug.trace("video : "+mediaXml.@src); titre.text="Video : "+mediaXml.@titre; vid.play(pathVideo+"/"+mediaXml.@src); isVid=true; } initDynamicDisplay(); bug.finFonction(); } // ----------------------------------------- // modification paramètres du composant // ----------------------------------------- function WheelModified(e:Event):void { bug.fonction("WheelModified",true); // modification info debug if(debug_chk.selected==true) { bug.memory=true; bug.out=true; bug.traceArea=traceText; } else { if(bug.out && bug.traceArea!=null) { bug.traceArea.text=""; } bug.memory=false; bug.out=false; } // vitesse de défilement (1 à 100) Wheel.vitesse=Number(vitesse_input.text); // sensibilité souris pour modifier // la vitesse de défilement Wheel.sensible=Number(sensible_input.text); // incrémentation de base pour le défilement // < 0 => de haut en bas (ou de gauche à droite) // > 0 => de bas en haut (ou de droite à gauche) // = 0 => Wheelment pas à pas Wheel.incr=Number(incr_input.text); initDynamicDisplay(); bug.trace("addChild Wheel"); bug.finFonction(); } // ----------------------------------------- // modification paramètres du composant // ----------------------------------------- function XmlModified(e:Event):void { bug.fonction("XmlModified",true); Wheel.WheelMediaData=XML(xml_input.text); bug.finFonction(); } // ---------------------------------------------------- // declanche l'affichage des statisques des fonctions // ---------------------------------------------------- function debugAllFonc(e:Event) { if(debug_chk.selected==false) { bug.memory=true; bug.traceArea=traceText; } bug.traceFunction("all"); if(debug_chk.selected==false) { bug.memory=false; bug.traceArea=null; } } // ----------------------------------------- // initialisation coordonnée d'affichage // du media selectionné // ----------------------------------------- function initDynamicDisplay():void { bug.fonction("initDynamicDisplay",true); var coord:Object; // sens vertical ou horizontal if(vertical_chk.selected==true && Wheel.sensDefilement=="horizontal") { Wheel.sensDefilement="vertical"; WheelCoord(coord_V); } else if(vertical_chk.selected==false && Wheel.sensDefilement=="vertical") { Wheel.sensDefilement="horizontal"; WheelCoord(coord_H); } if(Wheel.sensDefilement=="vertical") coord=coord_V; else coord=coord_H; // conteneur media selectionné if(isPict) { pict.x=coord.media.x+1; pict.y=coord.media.y+1; pict.width=coord.media.w-4; pict.height=coord.media.h-4; } if(isVid) { vid.x=coord.media.x+1; vid.y=coord.media.y+1; vid.width=coord.media.w-4; vid.height=coord.media.h-4; } xml_input.text=Wheel.WheelMediaData; bug.finFonction(); } function WheelCoord(coord:Object) { Wheel.x=coord.Wheel.x; Wheel.y=coord.Wheel.y; Wheel.width=coord.Wheel.w; Wheel.height=coord.Wheel.h; mc.x=coord.media.x; mc.y=coord.media.y; mc.width=coord.media.w; mc.height=coord.media.h; titre.x=coord.titre.x; titre.y=coord.titre.y; titre.width=coord.titre.w; titre.height=coord.titre.h; } // ----------------------------------------- // affichage zone de texte soit XML // ou debug // ----------------------------------------- function initStaticDisplay():void { bug.fonction("initStaticDisplay",true); debug_chk.selected=false; debug_chk.label="debug"; debug_chk.x=75; debug_chk.y=408; debug_chk.width=62; debug_chk.height=22; addChild(debug_chk); vertical_chk.selected=false; vertical_chk.label="vertical"; vertical_chk.x=7; vertical_chk.y=408; vertical_chk.width=70; vertical_chk.height=22; addChild(vertical_chk); incr_input.text="-1"; incr_input.x=215; incr_input.y=410; incr_input.width=36; incr_input.height=18; addChild(incr_input); sensible_input.text="4"; sensible_input.x=330; sensible_input.y=410; sensible_input.width=36; sensible_input.height=18; addChild(sensible_input); vitesse_input.text="80"; vitesse_input.x=444; vitesse_input.y=410; vitesse_input.width=36; vitesse_input.height=18; addChild(vitesse_input); valid_btn.label="valider"; valid_btn.x=485; valid_btn.y=408; valid_btn.width=52; valid_btn.height=22; addChild(valid_btn); xml_btn.label="change info xml"; xml_btn.x=6; xml_btn.y=432; xml_btn.width=100; xml_btn.height=22; addChild(xml_btn); allFonc.label="debug all fonc"; allFonc.x=438; allFonc.y=432; allFonc.width=100; allFonc.height=22; addChild(allFonc); xml_input.x=0; xml_input.y=459; xml_input.width=550; xml_input.height=241; addChild(xml_input); traceText.x=551; traceText.y=91; traceText.width=550; traceText.height=609; addChild(traceText); mc.graphics.lineStyle(2, 0xFFFF00, 1 ); mc.graphics.beginFill(0x999933,1); mc.graphics.drawRect(0,0,coord_V.media.w,coord_V.media.h); mc.graphics.endFill(); addChild(mc); // titre + infos chargement addChild(titre); // conteneur media bug.finFonction(); }
A chaque compilation de WheelParam, Flash CS3 va chercher les modifications éventuelles dans WheelMedia, et il prends en comptes aussi toutes les modifications effectuées dans les fichier AS contenus dans le dossier marmite
Pour une utilisation optimum du composant, il vaut mieux enlever l'utilisation et tout les appels à la classes debugTrace.
La classe debugTrace permet des faire des statistiques pour toutes les fonctions voulues, ces stat portent sur le nombre d'appel, la quantité de mémoire utilisée, et le nombre d'enfants créés
Ta source doit être exécutée sur kelle version de flash stp ?
J'ai un "Unexpected file format" à l'ouverture.
Merci à toi
Cdlt.
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.