2015-02-19 2 views
0

Я создаю простую интерактивную игру Mr. Potato Head с использованием AS3 и использовал следующий код, чтобы объекты исчезали при щелчке. Это пример кода, который обрабатывает нос. При щелчке носа он исчезает. Все работает по назначению; однако я хочу включить одну кнопку, которая при щелчке заставит все части (руки, глаза, рот и т. д.) снова появиться.AS3 Восстановление Alpha нескольких объектов по щелчку

Nose.addEventListener(MouseEvent.CLICK, mouseHandler4); 

function mouseHandler4(event:MouseEvent):void 
{ 
    Nose.removeEventListener(MouseEvent.CLICK, mouseHandler4); 
    addEventListener(Event.ENTER_FRAME, fadeOut4); 
} 

function fadeOut4(event:Event):void 
{ 
    var a:Number = Nose.alpha-0.05; 
    if (a<=0) 
    { 
     a = 0; 
     removeEventListener(Event.ENTER_FRAME, fadeOut4); 
    } 
    Nose.alpha = a; 
} 
+1

Это хороший пример для [объектно-ориентированного программирования (ООП) с Actionscript] (Http: // помощь. adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7ec0.html). Вы можете создать класс Body, который обладает такими свойствами, как «Нос», «Глаза», «Уши» и т. Д. В этом классе Body вы можете открыть публичный метод, который отображает все фрагменты. Этот общедоступный метод может использоваться как функция, когда запускается [событие click для вашей кнопки] (http://www.adobe.com/devnet/actionscript/articles/event_handling_as3.html), «показать все части». –

ответ

0

Я бы сделал массив всех клипов, которые вы хотите затухать;

var pieces:Array = [arms, eyes, mouth]; 

затем по щелчку, предполагая, что вы делаете функцию FadeIn похожий на ваш fadeOut4

for (var i:int = 0; i<pieces.length; i++){ 
    fadeIn(pieces[i]); 
}