Bonjour,

Voilà, je travail sur un site actuellement, je dois créer une animation flash avec un diaporama de plusieurs photos qui défile avec des boutons, c'est l'utilisateur qui doit appuyer sur PLAY, il peut faire stop et revenir sur les imges qui lui plait.

J'ai pris un projet pré fait dans flash que j'ai adapté. Il se compose de 3 calques, 1 avec toutes les images l'un à la suite de de l'autre, un autre avec le code et un autre pour les boutons.

Il marche correctement mais je voudrais que le diapo se lance DIRECTEMENT sans que le client clique sur play (le bouton afficherai directement pause et puisqu'il sera lancé)

Je vous montre le code :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
// USER CONFIG SETTINGS =====
var autoStart:Boolean = false; //true, false
var secondsDelay:Number = 1; // 1-60
// END USER CONFIG SETTINGS
 
 
 
// EVENTS =====
playPauseToggle_mc.addEventListener(MouseEvent.CLICK, fl_togglePlayPause);
function fl_togglePlayPause(evt:MouseEvent):void
{
    if(playPauseToggle_mc.currentLabel == "play")
    {
        fl_startSlideShow();
        playPauseToggle_mc.gotoAndStop("pause");
    }
    else if(playPauseToggle_mc.currentLabel == "pause")
    {
        fl_pauseSlideShow();
        playPauseToggle_mc.gotoAndStop("play");
    }
}
next_btn.addEventListener(MouseEvent.CLICK, fl_nextButtonClick);
prev_btn.addEventListener(MouseEvent.CLICK, fl_prevButtonClick);
function fl_nextButtonClick(evt:MouseEvent):void
{
    fl_nextSlide();
}
function fl_prevButtonClick(evt:MouseEvent):void
{
    fl_prevSlide();
}
var currentImageID:Number;
var slideshowTimer:Timer;
var appInit:Boolean;
function fl_slideShowNext(evt:TimerEvent):void
{
    fl_nextSlide();
}
// END EVENTS
 
// FUNCTIONS AND LOGIC =====
function fl_pauseSlideShow():void
{
    slideshowTimer.stop();
}
function fl_startSlideShow():void
{
    slideshowTimer.start();
}
function fl_nextSlide():void
{
    currentImageID++;
    if(currentImageID >= totalFrames)
    {
        currentImageID = 0;
    }
    gotoAndStop(currentImageID+1);
}
function fl_prevSlide():void
{
    currentImageID--;
    if(currentImageID < 0)
    {
        currentImageID = totalFrames+1;
    }
    gotoAndStop(currentImageID-1);
}
 
if(autoStart == true)
{
   fl_startSlideShow();
   playPauseToggle_mc.gotoAndStop("pause");
} else {
     gotoAndStop(1);
}
function initApp(){
    currentImageID = 0;
    slideshowTimer = new Timer((secondsDelay*1000), 0);
    slideshowTimer.addEventListener(TimerEvent.TIMER, fl_slideShowNext);
}
if(appInit != true){
    initApp();
    appInit = true;
}
// END FUNCTIONS AND LOGIC
 
-----------------------------------------------
Quand je met TRUE au tout début, il me met une erreur, la voici :


TypeError: Error #1009: Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul.
at ANIM_fla::MainTimeline/fl_startSlideShow()
at ANIM_fla::MainTimeline/frame1()

Voilà, je vous remercie d'avance, j'espère avoir été assez clair.

Bonne journée