Création de l'écran de sélection de l'emplacement (Flash Professional uniquement)

Dans cette section, vous allez créer un écran permettant à l'utilisateur de sélectionner l'un des quatre restaurants prenant des réservations en ligne. L'emplacement sélectionné par l'utilisateur dans cet écran détermine le numéro qui est composé lorsqu'il sélectionne Reservations dans l'écran d'accueil de l'application.

Lorsque l'utilisateur démarre l'application pour la première fois et sélectionne Reservations dans l'écran d'accueil, l'application affiche automatiquement l'écran set location qui permet de sélectionner un restaurant. Ensuite, lorsque l'utilisateur sélectionne Reservations, l'application compose immédiatement le numéro du restaurant à contacter par défaut. L'application a recours à un objet partagé pour enregistrer, entre les sessions, le restaurant que l'utilisateur a sélectionné.

  1. Dans Flash, ouvrez le fichier créé dans la section Création de l'écran Video (Flash Professional uniquement).
  2. Dans le scénario, sélectionnez l'image 66 en tant qu'image-clé dans le calque Options Menu.
  3. Ouvrez le panneau Bibliothèque (Fenêtre > Bibliothèque) et faites glisser le bouton location_SF_button de la bibliothèque vers la scène.

    Placez le bouton sous le texte qui commence par « Select your preferred location… ».

  4. Dans l'inspecteur Propriétés, tapez sf_btn dans la zone de texte Nom de l'occurrence.
  5. Faites glisser le bouton location_SJ_button de la bibliothèque vers la scène et placez-le directement sous le bouton location_SF.
  6. Dans l'inspecteur Propriétés, tapez sj_btn dans la zone de texte Nom de l'occurrence.
  7. Répétez l'étape 6 pour les deux boutons de la bibliothèque appelés location_PA et location_BK, puis nommez leur occurrence pa_btn et bk_btn.

    La scène de votre application doit ressembler à la capture d'écran ci-dessous :



  8. Dans le panneau Actions (Fenêtre > Actions), tapez le code suivant :
    stop ();
    fscommand2 ("SetSoftKeys", "Save", "Cancel");
    showCurrentLocation();
    //
    // Code du gestionnaire d'événements de touche
    // programmable
    //
    Key.removeListener (myListener);
    var myListener:Object = new Object ();
    myListener.onKeyDown = function () {
        var keyCode = Key.getCode ();
        if (keyCode == ExtendedKey.SOFT1) {
            // Enregistrement de l'emplacement :
            saveNewLocation ();
            gotoAndPlay ("home");
        }
        else if (keyCode == ExtendedKey.SOFT2) {
            // Annulation de l'opération, retour à l'écran 
            // d'accueil :
            gotoAndPlay ("home");
        }
    };
    Key.addListener (myListener);
    //
    // Fonction : saveNewLocation().
    //
    function saveNewLocation () {
        // Détermine le bouton (emplacement) sélectionné par 
        // l'utilisateur : 
        var selectedButton = Selection.getFocus ();
        switch (selectedButton._name) {
        case "sf_btn" :
            // L'utilisateur a sélectionné San Francisco.
            location_so.data.phoneNumber = "415-555-1212";
            break;
        case "_level0.sj_btn" :
            // L'utilisateur a sélectionné San Jose.
            location_so.data.phoneNumber = "408-555-1212";
            break;
        case "_level0.bk_btn" :
            // L'utilisateur a sélectionné Berkeley.
            location_so.data.phoneNumber = "510-555-1212";
            break;
        case "_level0.pa_btn" :
            // L'utilisateur a sélectionné Palo Alto.
            location_so.data.phoneNumber = "650-555-1212";
            break;
        }
    }
    //
    //     Fonction : showCurrentLocation().
    //
    function showCurrentLocation() {
        // Extraction du numéro stocké dans l'objet partagé :
        var phoneNumber:String = location_so.data.phoneNumber;
        // Extraction du code interurbain du numéro de 
        // téléphone :
        var areaCode:String = phoneNumber.substring (0, 3);
        // Définition du focus en fonction de la valeur du 
        // code interurbain sur le bouton correspondant :
        switch (areaCode) {
        case "415" :
            Selection.setFocus (_level0.sf_btn);
            break;
        case "408" :
            Selection.setFocus (_level0.sj_btn);
            break;
        case "510" :
            Selection.setFocus (_level0.bk_btn);
            break;
        case "650" :
            Selection.setFocus (_level0.pa_btn);
            break;
        }
    }