прокручиваемая панель меню прокручивается, даже если мышь не находится над панелью, поэтому другой контент на сцене также прокручивается

Я не могу ограничить этот код для прокрутки только front_mc и back_mc, в front_mc есть вложенные кнопки, которые работают и отображают содержимое при нажатии, но движение мыши фиксируется все время, поэтому содержимое меню также прокручивается, когда мышь перемещается. Пожалуйста, помогите мне, ребята, я не в состоянии справиться с этим.

root.addEventListener(MouseEvent.MOUSE_MOVE,f);

var t:Timer=новый таймер(40,0); t.addEventListener (TimerEvent.TIMER, moveF); функция f(e:MouseEvent) { t.stop(); т.старт(); } var speed:Number = .9;

function moveF(e:TimerEvent) { front_mc.x =speedfront_mc.x+(1-скорость)(stage.stageWidth-front_mc.width)root.mouseX/stage.stageWidth; back_mc.x = скоростьback_mc.x+(1-скорость)*(stage.stageWidth-back_mc.width)*root.mouseX/stage.stageWidth; if (Math.abs(front_mc.x-(stage.stageWidth-front_mc.width)*root.mouseX/stage.stageWidth)‹1 && Math.abs(back_mc.x-(stage.stageWidth-back_mc.width)*root .mouseX/stage.stageWidth)‹1) { front_mc.x = (stage.stageWidth-front_mc.width)*root.mouseX/stage.stageWidth; back_mc.x = (stage.stageWidth-back_mc.width)*root.mouseX/stage.stageWidth; т.стоп();

}
e.updateAfterEvent();

}


person Community    schedule 12.01.2009    source источник


Ответы (3)


к сожалению, это не меняет поведение :( но большое спасибо за эту подсказку

что он делает и должен делать: этот front_mc горизонтально прокручивает меню, если mousesY равен 90 и 250 (его ряд кнопок длиннее сцены), кнопки и их общая временная шкала вложены как menu_mc внутри front_mc.

если я перехожу в сторону меню и его прокрутка влево/вправо, и я нажимаю кнопку, содержимое рисуется, но когда я возвращаюсь в меню и оно прокручивается, то же самое происходит с нарисованным контентом, аналогом меню (синхронизировано). Должно быть, я неправильно это организовал.

front_mc.addEventListener(MouseEvent.MOUSE_MOVE,f); var t:Timer=новый таймер(30,0); t.addEventListener (TimerEvent.TIMER, moveF);

function f(e:MouseEvent) { if(root.mouseY > 90 && root.mouseY ‹ 250) { t.start(); } иначе { t.stop(); } } var speed:Number = .9; function moveF(e:TimerEvent) { front_mc.x =speedfront_mc.x+(1-скорость)(stage.stageWidth-front_mc.width)root.mouseX/stage.stageWidth; back_mc.x = скоростьback_mc.x+(1-скорость)*(stage.stageWidth-back_mc.width)*root.mouseX/stage.stageWidth; if (Math.abs(front_mc.x-(stage.stageWidth-front_mc.width)*root.mouseX/stage.stageWidth)‹1 && Math.abs(back_mc.x-(stage.stageWidth-back_mc.width)*root .mouseX/stage.stageWidth)‹1) { front_mc.x = (stage.stageWidth-front_mc.width)*root.mouseX/stage.stageWidth; back_mc.x = (stage.stageWidth-back_mc.width)*root.mouseX/stage.stageWidth; т.стоп();

} e.updateAfterEvent(); }

person Community    schedule 12.01.2009

решено.

так как _root.gotoAndStop(); из AS1-2 был удален, самый простой способ в Actionscript3 AS3 ссылаться, например. Кнопка внутри mc для вызова контента на сцену

MovieClip(root).gotoAndStop("Marker1");

Я думал, что у меня нет мувиклипа на основной временной шкале MTL, но он действительно работает, установите его как действие для ваших вложенных кнопок, и вы избавлены от сюрпризов: как в моем случае.

Я вложил меню прокрутки (front_mc) в mc на MTL, и контент вызывается на основной сцене, не перехватываемый моим движущимся front_mc.

person Community    schedule 16.01.2009

Вы используете слишком много слов и кода. Вы можете добавить простое исключение if(hitTest).

person Konrad    schedule 07.10.2009