Создал конструктор блок-схем. Работает все нормально. Но если подгружаю его в основной проект, то не желает работать часть кода. А точнее: на панельке podl_mc имеется пять видов стрелок st1,... По команде strelka.onMouseDown выбранная стрелка должна дублироваться и перетаскиваться на рабочее поле. В оригинале так и происходит, а вот после подгрузки - перестает.
Использую для загрузки MovieClipLoader.
Код AS1/AS2:
this._lockroot = true;
прописано.
после
Код AS1/AS2:
strelka.onMouseDown = function() {
трейсится,
а вот после
Код AS1/AS2:
if (this.hitTest(_xmouse, _ymouse) && podl_mc.hitTest(_xmouse, _ymouse)) {
глухо!
Код AS1/AS2:
var muv:MovieClip;
var d:Number = 0;
for (var s = 1; s<=5; s++) {
var strelka:MovieClip = _root['st'+s];
strelka.onMouseDown = function() {
if (this.hitTest(_xmouse, _ymouse) && podl_mc.hitTest(_xmouse, _ymouse)) {
d++;
this.duplicateMovieClip('dupst'+d, 100+d);
trace(this);
muv = _root['dupst'+d];
muv.startDrag(false);
muv.onMouseDown = function() {
if (this.hitTest(_xmouse, _ymouse) && !this.tr_mc.hitTest(_xmouse, _ymouse) && !this.ball1.hitTest(_xmouse, _ymouse)) {
this.startDrag(false);
}
};
}
};
}
Я понимаю, что глюк связан с this(а может и нет), но как правильно записать это условие не знаю. Прошу вашей помощи.
Добавлено через 6 часов 23 минуты
После бессмысленных попыток изменить что-либо в коде, сообразил, что загрузочный модуль то у меня раскрывается на полный экран, а загружаемый swf остается прежних размеров и размещается по центру экрана. Получается несоответствие координат клипов-стрелок и (_xmouse, _ymouse). Код работает, только чтобы взять стрелку, мышку необходимо подвести правее и ниже. Т. е. необходимо пересчитывать координаты. Прочитал о localToGlobal(), но не могу сообразить координаты чего пересчитывать, если клипа strelka, то относительно чего и как потом то что получу применить для проверки условия
Код AS1/AS2:
if (this.hitTest(_xmouse, _ymouse) && podl_mc.hitTest(_xmouse, _ymouse)) {
Подскажите, пожалуйста, что пересчитывать и как это проще сделать.