serialtaz
Messages postés7Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention28 juillet 2005
-
25 juil. 2005 à 10:26
Prouprou_Sensei
Messages postés517Date d'inscriptionmardi 23 décembre 2003StatutMembreDernière intervention24 octobre 2006
-
28 juil. 2005 à 12:07
Tout d'abord mon objectif: je veux créer un petit menu qui s'ouvre lorsqu'on click sur un mobile.
J'ai une classe Mobile extends de MovieClip
J'essaye de faire une classe qui serait une extends de MovieClip et que j'appelerai dans la classe Mobile (J'ai bien dit une classe cad que dans mon Mobile.as je fais un import du fichier AS de MyMenu)
code rapide:
MyMenu.as
class MyMenu extends MovieClip {
function MyMenu() {...}
function dessinMenu(){...}
+ gestion evenement
Mobile.as
import MyMenu
class Mobile extends MovieClip{
var monMenu:MyMenu;
function Mobile(){
this.monMenu = new MyMenu();
}
function ....
+ gestion evenement avec affichage de monMenu
J'ai essayer plein de truc mais je n'arrive pas a afficher le menu.
************************************************
Ou sinon si qqn sait comment declarer des evenements propre a une var.
Je m'explique:
On reprend la classe Mobile extends MovieClip
on declare une var toto:MovieClip
peut-on faire une gestion d'evenement propre à toto ???
Ca pourrait etre une autre solution
Prouprou_Sensei
Messages postés517Date d'inscriptionmardi 23 décembre 2003StatutMembreDernière intervention24 octobre 20061 25 juil. 2005 à 12:40
Je te conseil d'eviter les extends MovieClip, et plutot d'utiliser
comme tu l'as deviné un movieClip dans une classe menu, que tu as juste
a declarer et a attacher avec attachMovie dans la fonction constructeur.
C'est bien plus facile d'utilisation aprés et tu peut utiliser le
constructeur new avec ta classe, alors qu'avec les extends MovieClip tu
ne peut pas.
serialtaz
Messages postés7Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention28 juillet 2005 25 juil. 2005 à 13:31
Donc si je te suit bien je fais une classe MyMenu qui extends rien du tout et dans cette classe je declare:
var mc:MovieClip;
Et dans ma classe Mobile je fais:
un import MyMenu
var monMenu:Mymenu;
...
voila ce que j'ai compri et je vais de ce pas essayer
Merci
Ps: je donnerai des news
Ps2: Si tu vois une source qui pourrait m'aider au cas ou (car j'ai pas trouver moi)
serialtaz
Messages postés7Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention28 juillet 2005 26 juil. 2005 à 10:04
Bon je ne vois pas trop (newbie power!!)
voila ce que j'ai fais:
class MyMenu (sans extends)
public var mc:MovieClip;
function MyMenu(){
this.createEmptyMovieClip("mc",5);
...
}
*********************************************
class Mobile extends MovieClip
public var myme:MyMenu;
function Mobile() {
this.myme = new MyMenu();
}
*********************************************
Je n'arrive pas a afficher le menu...
plus bizard je n'arrive pas a avoir acces aux proprietes de mc
exple: trace(<nomMobile>.myme.mc._x); =>undefined
serialtaz
Messages postés7Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention28 juillet 2005 27 juil. 2005 à 11:45
J'ai essayé plein de truc et je n'y arrive pas.
Le truc c'est que j'aimerai que tout soit gerer par la classe (actionscript)
Je ne suis pas sur d'etre tres clair, cet aprem je poste mes sources allégées.
En attendant si quelqu'un sait si on peut gerer les evenements d'un movieclip interne à une classe extends movieclip.
exemple:
class mobile extends movieclip {
var monmc:MovieClip;
function mobile() {
this.createEmptyMovieClip("monmc",2);
}
function onRollOver() {
...
}
et je voudrais gerer independament le rollover de monmc
est-ce possible?
public var mybou:MyBouton;
public var btn_mc:MovieClip;
function Mobile() {
this.createEmptyMovieClip("btn_mc",7);
this.mybou = new MyBouton();
this.btn_mc.attachMovie("mybou.mc",btn1,8);
}
}
*****************************
J'ai aussi esayer avec une classe MyBouton extends MovieClip mais ca marche pas non plus!
Sensei si tu peut jeter un coup d'oeil ou si quelque veut bien se devouer je vous en remercierais.
Prouprou_Sensei
Messages postés517Date d'inscriptionmardi 23 décembre 2003StatutMembreDernière intervention24 octobre 20061 27 juil. 2005 à 19:37
Le probleme est simple, quand tu fait le createEmptyMovieClip, tu met this, et this est l'occurence que tu viens de creer avec new, donc ce n'est pas un movieClip, pourtant tu essay d'y creer un movie clip avec createEmptyMovieClip, et cette methode est reservé aux movieClip. Tu applique une methode a une classe qui ne la connait pas, donc il ne se passe rien...
Il faut obligatoirement que tu ais quelque part, _root ou _root.clipMenu sinon tu ne pourra rien faire.
Et si tu veut que ton appli soit plus portative, met dans les parametre de ta classe le chemin vers lequel le clip doit etre attaché.
serialtaz
Messages postés7Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention28 juillet 2005 28 juil. 2005 à 08:21
Apres reflexion sur ta reponse je me suis rendu compte que du coup les evenements ne marcherait pas non plus puisqu'ils sont des methodes de la classe movieclip.
Donc il faut que je fasse un extends de movieclip et ca ne maeche pas non plus.
voila le code:
//****************************************************************
dynamic class Boutoon extends MovieClip {
public var ecrit:String;
public var haute:Number;
public var large:Number;
public var coulo:Number;
function Boutoon() {
trace("Boutoon construit");
this._x=0; this._y=0;
this.ecrit="boutoon";
this.haute=20;
this.large=80;
this.coulo=0x999999;
var form1 = new TextFormat("Arial",11,0x000000,false,false,false,null,null,"center",0,0,0,0);
this.createTextField("lab", 2, 1, 1,this.large-2,this.haute-2);
this.lab.text = this.ecrit;
this.lab.setTextFormat(form1);
this.dessinBoutoon(this.coulo);
}
function dessinBoutoon(coulor) {
trace("dessin boutoon");
this.beginFill(coulor, 255);
this.moveTo(0, 0);
this.lineTo(0, this.haute);
this.lineTo(this.large, this.haute);
this.lineTo(this.large, 0);
this.lineTo(0, 0);
this.endFill();
}
// Gestion des evenements
function onRollOver() {
this.dessinBoutoon(0x00FFFF);
}
function onRollOut() {
this.dessinBoutoon(this.coulo);
}
Prouprou_Sensei
Messages postés517Date d'inscriptionmardi 23 décembre 2003StatutMembreDernière intervention24 octobre 20061 28 juil. 2005 à 12:07
Si tu souhaites l'utiliser comme cela, il faut que tu utilise attachMovie ou que tu mette manuellment ton clip sur ta scene, tu ne peut pas utiliser de new, comme sur un movieClip.
Mais je te conseil de faire comme j'avais dis au dessus, si tu ne comprend pas ce que j'ai mis demande.
Et regarde tes pm.