относительно распространения событий вы можете посмотреть по этой ссылке , пример swf показывает пузырение / распространение и остановку распространения
по умолчанию событие click будет распространяться, поэтому, если вы прикрепите событие к мувиклипу верхнего уровня, вы можете установить действие там.
Вы можете попробовать этот простой тест. Создайте мувиклип с именем «mc» и поместите туда другие видеоклипы, используя этот код, каждый раз, когда вы нажимаете на что-либо внутри этого mc, происходит событие. если вы назовете эти мувиклипы, вы увидите всплывающие имена, в противном случае вы должны увидеть имена, похожие на этот «экземпляр #»
mc.addEventListener(MouseEvent.CLICK,onHit);
function onHit(e:MouseEvent):void{
trace(e.target.name);
}
наличие кода в файле .as значительно упрощает кодирование. Например, я делаю 99,7% кодирования во внешнем редакторе и использую только flash для создания своих графических ресурсов.
Вы можете использовать так называемый documentClass, который расширяет MovieClip по умолчанию, который действует как сценарий, большинство примеров в справке Adobe используют их. Для быстрых тестов я просто использую панель кода (F9). Большая разница в том, что кодирование таким образом (с использованием файлов .as) намного проще и быстрее, особенно с такими средами разработки, как FlashDevelop, FlashBuilder, FDT и т. Д.
для предоставленного вами fla, вы можете использовать это для класса документов
package {
import flash.display.MovieClip;
import flash.events.MouseEvent;
public class FrameEvents extends MovieClip {
public function FrameEvents() {
cycle.addEventListener(MouseEvent.CLICK,onHit);
}
public function onHit(e:MouseEvent):void{
trace(e.target.name);
}
}
}
вы должны увидеть body
, прослеживаемый при нажатии на корпус, и wheel
при нажатии на колесо