Je continue mon chemin de croix dans l'apprentissage de l'AS3 et je suis confronté à un sérieux problème de ciblage que je ne comprends pas.
Au début de mon code, je crée un movieClip comme ceci:
Action Script
var player_mc:MovieClip = new MovieClip();
this.addChild(player_mc);
player_mc.x = 100;
player_mc.y = 100;
Ensuite j'appelle une fonction qui va placer mes éléments dans ce MovieClip ainsi que les Listener comme ceci :
Action Script
function placeElements():void
{
// Mise en place du volume avec separateur
var volume_mc:VolumeFader = new VolumeFader();
var volume_separator:VolumeSeparator = new VolumeSeparator();
player_mc.addChild(volume_mc);
player_mc.addChild(volume_separator);
volume_mc.x = 20;
volume_mc.y = fond_princ_mc.height - 20;
volume_separator.x = 40;
volume_separator.y = fond_princ_mc.height - 15;
// Mise en place des ecouteurs
volume_mc.volume_btn_mc.addEventListener(MouseEvent.MOUSE_DOWN, onVolumeDown);
volume_mc.volume_btn_mc.addEventListener(MouseEvent.MOUSE_UP, onVolumeUp);
volume_mc.volume_btn_mc.addEventListener(MouseEvent.MOUSE_OVER, onVolumeOver);
volume_mc.volume_btn_mc.addEventListener(MouseEvent.MOUSE_OUT, onVolumeOut);
}
Le problème survient dans les fonctions onVolumeXXX qui ressemblent à ceci :
Action Script
function onVolumeUp(evt:Event):void
{
volume_mc.volume_btn_mc.stopDrag();
volume_mc.volume_btn_mc.removeEventListener(MouseEvent.MOUSE_MOVE,onVolumeChange
);
}
function onVolumeDown(evt:Event):void
{
volume_mc.volume_btn_mc.filters = [filtDown];
volume_mc.volume_btn_mc.startDrag(false,new Rectangle(0, -100, 0, 100));
volume_mc.volume_btn_mc.addEventListener(MouseEvent.MOUSE_MOVE,onVolumeChange);
}
function onVolumeOver(evt:Event):void
{
volume_mc.volume_btn_mc.filters = [filtOver];
}
function onVolumeOut(evt:Event):void
{
volume_mc.volume_btn_mc.filters = null;
}
function onVolumeChange(evt:Event):void
{
sndVolume = sndChannel.soundTransform;
sndVolume.volume = volume_mc.volume_btn_mc.y * -0.01;
sndChannel.soundTransform = sndVolume;
}
A l'execution, Flash me sors cette erreur dans toutes mes fonctions ecouteurs :
Citation
1120: Accès à la propriété non définie volume_mc.
J'ai essayé de cibler avec player_mc en racine de volume_mc, mais là, à l'execution, Flash me dit que je tente d'accéder à un élément qui n'a pas de propiétés ...
Citation
TypeError: Error #1010: A term is undefined and has no properties.
at mp3Player_fla::MainTimeline/onVolumeOver()[mp3Player_fla.MainTimeline::frame1:378]
at mp3Player_fla::MainTimeline/onVolumeOver()[mp3Player_fla.MainTimeline::frame1:378]
Je pense que mon ciblage de volume_mc n'est pas correct, mais je ne vois pas comment faire.
Merci d'avance,
Joni
