2010-08-21 4 views
0

J'essaye de créer une "barre de mesure" dans Flash. Je crée une maison interactive en Flash. À l'intérieur de la maison sont des objets qui consomment de l'énergie. (par exemple ampoule, ordinateur, cuisinière, etc ...) Ces objets sont des boutons bascule (créés en utilisant MovieClips). (Les objets peuvent être activés/désactivés.) Lorsque ON - il y a une "valeur de puissance" associée à chaque objet de la maison (l'ampoule serait 1, l'ordinateur serait 2, le téléviseur serait 3 ...)Comment créer une "barre de mesure" dans Flash?

J'essaie de créer une «barre de mesure» (qui ressemble à une barre de préchargement) qui montre visuellement la puissance utilisée dans la maison. Avoir une barre de compteur complète - serait d'avoir tous les objets de la maison allumés.

Vous ne savez pas par où commencer. Toute idée de direction ou tout tutoriel/exemple que vous pourriez trouver utile serait apprécié.

Répondre

1

Vous pouvez créer un événement personnalisé qui sera distribué à chaque fois qu'un élément est cliqué. L'événement aurait deux propriétés, le niveau de puissance et une propriété de statut. Lorsque cet événement est reçu, vous pouvez mettre à jour la valeur de votre barre de compteur.

si la valeur d'état est "Off", décrémentez la valeur de la barre de mesure de la valeur de puissance, si "On", augmentez de la valeur de puissance.

Je voudrais créer deux classes - ToggleClickButton, aurait une propriété d'état qui est mis à jour par chaque clic - CustomEvent, comme expliqué ci-dessus

Bien sûr, vous devez ajouter les éléments manquants (meterLevel, meterBar etc. Le CustomEvent peut être évité si tout se passe dans la même classe, dans ce cas vous avez juste besoin de connaître l'état du bouton cliqué et de le passer à une fonction avec la valeur powerData.

 

function toggleClick(event:MouseEvent):void 
{ 
    var button:ToggleClickButton = event.currentTarget as ToggleClickButton; 
    dispatchEvent(new CustomEvent(powerData , button.status)); 
} 

function customEventListener(event:CustomEvent):void 
{ 
    if(event.status == 0) 
    { 
     meterLevel -= event.powerData; 
    }else { 

    meterLevel += event.powerData; 
    } 

    updateMeterDisplay(); 
} 

function updateMeterDisplay() 
{ 
    //for instance if you have a maxPower and a meterBar maxHeight 
    meterBar.height = meterLevel * (maxHeight/maxPower); 
} 

Questions connexes