Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   некорректная работа подгруженного swf (http://www.flasher.ru/forum/showthread.php?t=199830)

alex_195 25.05.2013 15:15

некорректная работа подгруженного swf
 
Создал конструктор блок-схем. Работает все нормально. Но если подгружаю его в основной проект, то не желает работать часть кода. А точнее: на панельке 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)) {

Подскажите, пожалуйста, что пересчитывать и как это проще сделать.


Часовой пояс GMT +4, время: 21:02.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.