Actionscript 3 mouse_over воспроизводит фильм - PullRequest
0 голосов
/ 15 января 2010

Я пытаюсь воспроизвести мувиклип, когда его наведите мышью. Я могу сделать это хорошо, выполнив:

mc1.addEventListener(MouseEvent.MOUSE_OVER,mover);

function mover(e:MouseEvent):void {
   mc1.play();
}

Но я хочу использовать ту же функцию для других видеоклипов, например, для воспроизведения movieclip2, movieclip3 и т. Д.

Как бы мне этого добиться?

Ответы [ 2 ]

3 голосов
/ 15 января 2010
mc1.addEventListener(MouseEvent.MOUSE_OVER,mover);
mc2.addEventListener(MouseEvent.MOUSE_OVER,mover);
mc3.addEventListener(MouseEvent.MOUSE_OVER,mover);

function mover(e:MouseEvent):void {
   e.currentTarget.play();
}
1 голос
/ 15 января 2010

Вы можете создать класс для инкапсуляции вашей логики, например, чтобы получить доступ к MovieClip из вызывающей функции, используйте свойство Событие объект

import flash.display.MovieClip;
import flash.events.MouseEvent;

public class PlayMovieClip {

 // register the mouse over event with whatever MovieClip you want
 public static function register(mc:MovieClip):void{
  mc.addEventListener(MouseEvent.MOUSE_OVER,mover);
 }
 // unregister the event when you dont need it anymore
 public static function unregister(mc:MovieClip):void{
  mc.removeEventListener(MouseEvent.MOUSE_OVER, mover);
 }
 // the MouseEvent will be throw whenever the mouse pass over the registered MovieClip
 // and in the MouseEvent property you have the targeted object
 // so use it
 public static function mover(e:MouseEvent):void{
   // check if we have really a MovieClip
   var mc:MovieClip=e.currentTarget as MovieClip; 
   if (mc!==null) {
     // we have a MovieClip so we can run the function play on it
     mc.play();
   }
 }
}

использование:

PlayMovieClip.register(mc1);
...
PlayMovieClip.register(mcX);

и удалить событие:

PlayMovieClip.unregister(mc1);
...
PlayMovieClip.unregister(mcX);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...