Aide - Recherche - Membres - Calendrier
Version complète : Menu carousel 3d et ecriture dans fichier texte
Centre de Formation Flash - Forums Adobe Flash > Rich media et intégration > AIR
alamata
bonjour a tous,...

voila ce qui m'amene a vous,...

j'ai du code pour la realisation d'un menu 3d carousel

le voici:

Action Script


//Rayon de rotation (en pixels) autour de l'axe y
var Rx:Number=120;

//Nombre d'icones (pas plus que 10, quoique...)
var N:Number=10;

//angle de rotation des clips autour de l'axe z
var angle:Number=0;

//Attachement des icones
var Reference:Class;
for(var i:Number=0;i<N;i++)
{

// extraction des références de classe
Reference = Class (getDefinitionByName ( "MonClip"+i ));

// ajout à la liste d'affichage
this.addChild ( DisplayObject ( new Reference() ) );

//Nom du clip
this.getChildAt(i).name='ID'+i;

//position initial du ieme clip en y (milieu de scene)
this.getChildAt(i).y=stage.stageHeight/2;

//Position initial du ieme clip en x
this.getChildAt(i).x=Rx*Math.cos(2*Math.PI*i/N)+stage.stageWidth/2;

//taille initiale du ieme clip
this.getChildAt(i).scaleX=0.6/2*(Math.sin(2*Math.PI*i/N)+ 1)+0.4;
this.getChildAt(i).scaleY=this.getChildAt(i).scaleX;

//ajout d'un ecouteur sur le ieme clip
this.getChildAt(i).addEventListener(MouseEvent.CLICK, OnClick);

}

//Fonction de click sur les icones
function OnClick ( pEvt:MouseEvent ):void
{
trace("Mediabox");
}

//ecouteur enter_frame
stage.addEventListener ( Event.ENTER_FRAME, Main );

function Main ( pEvt:Event ):void
{
//variable temporaire pour la profondeur
var z:Number;

//si l'angle a fait un tour alors remise a zero de l'angle
if (angle>2*Math.PI)
{
angle=0;
}
else
{
for(i=0;i<N;i++)
{

//rotation du i_eme clip sur x
this.getChildByName('ID'+i).x=Rx*Math.cos(angle+2*Math.PI*i/N)+stage.stageWidth/2;

//mise a jour de la taille du clip (60%->premier plan, 40%->arriere plan)
this.getChildByName('ID'+i).scaleX=0.6/2*(Math.sin(angle+2*Math.PI*i/N)+ 1)+0.4;
this.getChildByName('ID'+i).scaleY=getChildByName('ID'+i).scaleX;

//mise a jour de z (profondeur);
z=(N-1)*(Math.sin(angle+2*Math.PI*i/N)+1)/2;
this.setChildIndex(this.getChildByName('ID'+i), int(z));
}

angle+=0.02

}
}


cependant mon probleme est celui ci

j'aimerais integrer ce code :

Action Script


bt1.addEventListener(MouseEvent.CLICK, onMouseClickEvent);
function onMouseClickEvent(event:MouseEvent) : void {
if (event.buttonDown) {

var urlStr="file:///C:/xl/plug/XE";
var file = new File ();

file.url=urlStr;

file=file.resolvePath("XA.txt");

var fileStream:FileStream = new FileStream();

fileStream.open(file, FileMode.WRITE);

var str:String="NOW|goto:music";

fileStream.writeUTFBytes(str);

fileStream.close();}


ou bt1 est le nom de l'occurence
ce code permettant l'ecriture dans le fichier XA.txt
prealablement existant et dons le chemin est donne par C:/xl/plug/XE

j'aimerais pouvoir integrer ce code avec une instruction differente pour chaque bouton

comment dois je m'y prendre afin de pouvoir affecte une ecriture d'instruction differente pour chaque bouton


bref comment integrer le bout de code de l'ecriture de fichier pour chaque boutons du menu

mes competences en as etant deja depassees,
merci de votre comprehension,...
myfimail
si tu travailles avec flash player 10 pense a utiliser la methode save() de la classe FileReference
alamata
Citation (myfimail @ Oct 22 2008, 07:01 PM) *
si tu travailles avec flash player 10 pense a utiliser la methode save() de la classe FileReference



salut myfimail,... icon_smile.gif
desole, j'ai omis de dire que ce code s'incrit dans une demarche

d'ecriture transparente dans le fichier texte
voir ce post
http://flash.mediabox.fr/index.php?showtopic=89674

raison pour laquelle j'utilise AIR filesystem...

a suivre....
alamata
... icon_arrow.gif

apparemment il est possible d'ajouter
une action differente a chaque boutons
pour l'integration de ce code

Action Script


var bouton:Array = new Array("MonClip"+i);

if (i==0){
this.getChildAt(i=0).addEventListener(MouseEvent.CLICK,passer0)
function passer0(evt:MouseEvent){
gotoAndStop(1);}}

if (i==1){
this.getChildAt(i=1).addEventListener(MouseEvent.CLICK,passer1)
function passer1(evt:MouseEvent){
gotoAndStop(1);}}


ligne a reproduire autant de fois qu'il y a de boutons

...

cependant
a l'heure actuelle je suis dans l'incapacite
d'y injecter le code "pour l'ecriture transparente du fichier"
cela apres une serie d'essais infructueux...

a ce stade
ayant la possibilite actuellement d'assigner une action du type gotoAndStop
differentes a chaque bouton
mais etant incapacble de "remplacer" cette action du type gotoAndStop
par l'action "d'ecriture transparente de fichier"

je me tourne une fois de plus vers vous
dans l'espoir qu'une personne possede des elements qui puissent
m'orienter vers une solution...

dans l'attente impatiente de touver une solution...
alamata
...voila ou j'en suis icon_redface.gif

j'ai reussi a injecter le code
pour effectuer une action differente pour chaque bouton
cette action etant dans ce cas ci un gotoAndStop

mais je suis toujours incapable d'injecter le code pour
"l'ecriture transparente de fichier".... icon_sad.gif

code avec une action differente

Action Script


//Rayon de rotation (en pixels) autour de l'axe y
var Rx:Number=250;

//Nombre d'icones (pas plus que 10, quoique...)
var N:Number=10;

//angle de rotation des clips autour de l'axe z
var angle:Number=0;

//Attachement des icones
var Reference:Class;
for (var i:Number=0; i<N; i++) {

// extraction des références de classe
Reference=Class(getDefinitionByName("MonClip"+i));

// ajout à la liste d'affichage
this.addChild( DisplayObject ( new Reference() ) );

//Nom du clip
this.getChildAt(i).name='ID'+i;

var bouton:Array = new Array("MonClip"+i);

if (i==0){
this.getChildAt(i=0).addEventListener(MouseEvent.CLICK,passer0)
function passer0(evt:MouseEvent){
gotoAndStop(10);}}

if (i==1){
this.getChildAt(i=1).addEventListener(MouseEvent.CLICK,passer1)
function passer1(evt:MouseEvent){
gotoAndStop(10);}}

if (i==2){
this.getChildAt(i=2).addEventListener(MouseEvent.CLICK,passer2)
function passer2(evt:MouseEvent){
gotoAndStop(10);}}

if (i==3){
this.getChildAt(i=3).addEventListener(MouseEvent.CLICK,passer3)
function passer3(evt:MouseEvent){
gotoAndStop(10);}}

if (i==4){
this.getChildAt(i=4).addEventListener(MouseEvent.CLICK,passer4)
function passer4(evt:MouseEvent){
gotoAndStop(10);}}

if (i==5){
this.getChildAt(i=5).addEventListener(MouseEvent.CLICK,passer5)
function passer5(evt:MouseEvent){
gotoAndStop(10);}}

if (i==6){
this.getChildAt(i=6).addEventListener(MouseEvent.CLICK,passer6)
function passer6(evt:MouseEvent){
gotoAndStop(10);}}

if (i==7){
this.getChildAt(i=7).addEventListener(MouseEvent.CLICK,passer7)
function passer7(evt:MouseEvent){
gotoAndStop(10);}}

if (i==8){
this.getChildAt(i=8).addEventListener(MouseEvent.CLICK,passer8)
function passer8(evt:MouseEvent){
gotoAndStop(10);}}

if (i==9){
this.getChildAt(i=9).addEventListener(MouseEvent.CLICK,passer9)
function passer9(evt:MouseEvent){
gotoAndStop(10);}}





//position initial du ieme clip en y (milieu de scene)
this.getChildAt(i).y=stage.stageHeight/2;

//Position initial du ieme clip en x
this.getChildAt(i).x=Rx*Math.cos(2*Math.PI*i/N)+stage.stageWidth/2;

//taille initiale du ieme clip
this.getChildAt(i).scaleX=0.6/2*(Math.sin(2*Math.PI*i/N)+ 1)+0.4;
this.getChildAt(i).scaleY=this.getChildAt(i).scaleX;



//ecouteur enter_frame
stage.addEventListener( Event.ENTER_FRAME, Main );

function Main( pEvt:Event ):void {
//variable temporaire pour la profondeur
var z:Number;

//si l'angle a fait un tour alors remise a zero de l'angle
if (angle>2*Math.PI) {
angle=0;
} else {
for (i=0; i<N; i++) {

//rotation du i_eme clip sur x
this.getChildByName('ID'+i).x=Rx*Math.cos(angle+2*Math.PI*i/N)+stage.stageWidth/2;

//mise a jour de la taille du clip (60%->premier plan, 40%->arriere plan)
this.getChildByName('ID'+i).scaleX=0.6/2*(Math.sin(angle+2*Math.PI*i/N)+ 1)+0.4;
this.getChildByName('ID'+i).scaleY=getChildByName('ID'+i).scaleX;

//mise a jour de z (profondeur);
z=(N-1)*(Math.sin(angle+2*Math.PI*i/N)+1)/2;
this.setChildIndex(this.getChildByName('ID'+i), int(z));
}

//rotation commandée par la souris
//conditions sur x
angle+=0.02
}

}
}
stop ();


mais je n'arrive toujour pas a injecter ce code

Action Script



bt1.addEventListener(MouseEvent.CLICK, onMouseClickEvent);
function onMouseClickEvent(event:MouseEvent) : void {
if (event.buttonDown) {

var urlStr="file:///C:/xl/plug/XE";
var file = new File ();

file.url=urlStr;

file=file.resolvePath("XA.txt");

var fileStream:FileStream = new FileStream();

fileStream.open(file, FileMode.WRITE);

var str:String="NOW|goto:music";

fileStream.writeUTFBytes(str);

fileStream.close();}



ce code etant pour l'ecriture tranparente dans un fichier

code ou bt1 est le nom de l'occurence mis sur la scene

je pense que le probleme vient de la

le code pour l'ecriture transparente du fichier
est base sur le nom de l'occurence mise sur la scene

mais dans le cas du menu carousel
les movieclips ne sont pas presents sur la scene
il s'agit de les "exporter pour actionscript"

donc un code concerne l'occurence du movieclip sur la scene
l'autre des symbole exporter pour actionscript

je pense que le probleme vient de la

mais je n'arrive pas a trouver pour l'instant de solution....

un avis, une idee, une piste...
je suis preneur...
alamata
... icon_arrow.gif icon_eek.gif

autant pour moi,.... icon_mrgreen.gif

j'avais la solution au bout de mon nez ... icon_redface.gif
et le fait d'avoir formuler mon dernier post
ma permis de trouver la solution

voici le code

Action Script

import flash.filesystem.*;

//Rayon de rotation (en pixels) autour de l'axe y
var Rx:Number=250;

//Nombre d'icones (pas plus que 10, quoique...)
var N:Number=10;

//angle de rotation des clips autour de l'axe z
var angle:Number=0;

//Attachement des icones
var Reference:Class;
for (var i:Number=0; i<N; i++) {

// extraction des références de classe
Reference=Class(getDefinitionByName("MonClip"+i));

// ajout à la liste d'affichage
this.addChild( DisplayObject ( new Reference() ) );

//Nom du clip
this.getChildAt(i).name='ID'+i;

var bouton:Array=new Array("MonClip"+i);

if (i==0) {
this.getChildAt(i=0).addEventListener(MouseEvent.CLICK,passer0);
function passer0(evt:MouseEvent) {
var urlStr="file:///C:/xl/plugins/XE";
var file = new File ();

file.url=urlStr;

file=file.resolvePath("XA.txt");

var fileStream:FileStream = new FileStream();

fileStream.open(file, FileMode.WRITE);

var str:String="NOW|goto:music";

fileStream.writeUTFBytes(str);



fileStream.close();

stop();
}
}

if (i==1) {
this.getChildAt(i=1).addEventListener(MouseEvent.CLICK,passer1);
function passer1(evt:MouseEvent) {
var urlStr="file:///C:/xl/plugins/XE";
var file = new File ();

file.url=urlStr;

file=file.resolvePath("XA.txt");

var fileStream:FileStream = new FileStream();

fileStream.open(file, FileMode.WRITE);

var str:String="NOW|goto:music";

fileStream.writeUTFBytes(str);



fileStream.close();

stop();
}
}

if (i==2) {
this.getChildAt(i=2).addEventListener(MouseEvent.CLICK,passer2);
function passer2(evt:MouseEvent) {
var urlStr="file:///C:/xl/plugins/XE";
var file = new File ();

file.url=urlStr;

file=file.resolvePath("XA.txt");

var fileStream:FileStream = new FileStream();

fileStream.open(file, FileMode.WRITE);

var str:String="NOW|goto:music";

fileStream.writeUTFBytes(str);



fileStream.close();

stop();
}
}

if (i==3) {
this.getChildAt(i=3).addEventListener(MouseEvent.CLICK,passer3);
function passer3(evt:MouseEvent) {
var urlStr="file:///C:/xl/plugins/XE";
var file = new File ();

file.url=urlStr;

file=file.resolvePath("XA.txt");

var fileStream:FileStream = new FileStream();

fileStream.open(file, FileMode.WRITE);

var str:String="NOW|goto:music";

fileStream.writeUTFBytes(str);



fileStream.close();

stop();
}
}

if (i==4) {
this.getChildAt(i=4).addEventListener(MouseEvent.CLICK,passer4);
function passer4(evt:MouseEvent) {
var urlStr="file:///C:/xl/plugins/XE";
var file = new File ();

file.url=urlStr;

file=file.resolvePath("XA.txt");

var fileStream:FileStream = new FileStream();

fileStream.open(file, FileMode.WRITE);

var str:String="NOW|goto:music";

fileStream.writeUTFBytes(str);



fileStream.close();

stop();
}
}

if (i==5) {
this.getChildAt(i=5).addEventListener(MouseEvent.CLICK,passer5);
function passer5(evt:MouseEvent) {
var urlStr="file:///C:/xl/plugins/XE";
var file = new File ();

file.url=urlStr;

file=file.resolvePath("XA.txt");

var fileStream:FileStream = new FileStream();

fileStream.open(file, FileMode.WRITE);

var str:String="NOW|goto:music";

fileStream.writeUTFBytes(str);



fileStream.close();

stop();
}
}

if (i==6) {
this.getChildAt(i=6).addEventListener(MouseEvent.CLICK,passer6);
function passer6(evt:MouseEvent) {
var urlStr="file:///C:/xl/plugins/XE";
var file = new File ();

file.url=urlStr;

file=file.resolvePath("XA.txt");

var fileStream:FileStream = new FileStream();

fileStream.open(file, FileMode.WRITE);

var str:String="NOW|goto:music";

fileStream.writeUTFBytes(str);



fileStream.close();

stop();
}
}

if (i==7) {
this.getChildAt(i=7).addEventListener(MouseEvent.CLICK,passer7);
function passer7(evt:MouseEvent) {
var urlStr="file:///C:/xl/plugins/XE";
var file = new File ();

file.url=urlStr;

file=file.resolvePath("XA.txt");

var fileStream:FileStream = new FileStream();

fileStream.open(file, FileMode.WRITE);

var str:String="NOW|goto:music";

fileStream.writeUTFBytes(str);



fileStream.close();

stop();
}
}
if (i==8) {
this.getChildAt(i=8).addEventListener(MouseEvent.CLICK,passer8);
function passer8(evt:MouseEvent) {
var urlStr="file:///C:/xl/plugins/XE";
var file = new File ();

file.url=urlStr;

file=file.resolvePath("XA.txt");

var fileStream:FileStream = new FileStream();

fileStream.open(file, FileMode.WRITE);

var str:String="NOW|goto:music";

fileStream.writeUTFBytes(str);



fileStream.close();

stop();
}
}

if (i==9) {
this.getChildAt(i=9).addEventListener(MouseEvent.CLICK,passer9);
function passer9(evt:MouseEvent) {
var urlStr="file:///C:/xl/plugins/XE";
var file = new File ();

file.url=urlStr;

file=file.resolvePath("XA.txt");

var fileStream:FileStream = new FileStream();

fileStream.open(file, FileMode.WRITE);

var str:String="NOW|goto:music";

fileStream.writeUTFBytes(str);



fileStream.close();

stop();
}
}




//position initial du ieme clip en y (milieu de scene)
this.getChildAt(i).y=stage.stageHeight/2;

//Position initial du ieme clip en x
this.getChildAt(i).x=Rx*Math.cos(2*Math.PI*i/N)+stage.stageWidth/2;

//taille initiale du ieme clip
this.getChildAt(i).scaleX=0.6/2*(Math.sin(2*Math.PI*i/N)+ 1)+0.4;
this.getChildAt(i).scaleY=this.getChildAt(i).scaleX;



//ecouteur enter_frame
stage.addEventListener( Event.ENTER_FRAME, Main );

function Main( pEvt:Event ):void {
//variable temporaire pour la profondeur
var z:Number;

//si l'angle a fait un tour alors remise a zero de l'angle
if (angle>2*Math.PI) {
angle=0;
} else {
for (i=0; i<N; i++) {

//rotation du i_eme clip sur x
this.getChildByName('ID'+i).x=Rx*Math.cos(angle+2*Math.PI*i/N)+stage.stageWidth/2;

//mise a jour de la taille du clip (60%->premier plan, 40%->arriere plan)
this.getChildByName('ID'+i).scaleX=0.6/2*(Math.sin(angle+2*Math.PI*i/N)+ 1)+0.4;
this.getChildByName('ID'+i).scaleY=getChildByName('ID'+i).scaleX;

//mise a jour de z (profondeur);
z=(N-1)*(Math.sin(angle+2*Math.PI*i/N)+1)/2;
this.setChildIndex(this.getChildByName('ID'+i), int(z));
}

//rotation commandée par la souris
//conditions sur x
angle+=0.02;
}

}
}
stop();


la solution etant dans ce post

http://flash.mediabox.fr/index.php?s=&...st&p=577657

desole,..fausse alerte... icon_eek.gif icon_mrgreen.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2009 Invision Power Services, Inc.