Как показать всплывающие подсказки внутри ScrollPane, не позволяя Flash 8 скрыть подсказку? - PullRequest
4 голосов
/ 23 декабря 2011

У меня есть содержимое полосы прокрутки, которая при нажатии отображает мувиклип с подсказкой с attachMovieClip;проблема в том, что прикрепленный фрагмент ролика, для первых строк, проходит под границей ScrollPane и является частично невидимым.Есть ли способ решить эту проблему (без изменения положения прикрепленного фрагмента ролика?)

1 Ответ

3 голосов
/ 01 января 2012

Я предполагаю, что вы загружаете видеоклип внутри ScrollPane contentPath. Этот мувиклип динамически загружает другой мувиклип, всплывающую подсказку. Если вы загружаете всплывающую подсказку таким образом, глубина не имеет значения: все, что находится внутри объекта ScrollPane, обрезается, и вы никогда не сможете увидеть, что находится под ним. Это, конечно, и есть смысл ScrollPane класса; он показывает только немного базового контента за раз, и позволяет пользователю прокручивать.

Вот код, который может повторить проблему:

this.attachMovie("tooltip1","tooltip1A", 100); //note the high level     
var mouseListener:Object = new Object();
mouseListener.onMouseMove = function() {
    tooltip1A._x = _xmouse;
    tooltip1A._y = _ymouse;
    updateAfterEvent();
};

Mouse.addListener(mouseListener);

Поместите это в библиотечный мувиклип (назовите его paneContentMC). Откройте Свойства. Проверьте «Экспорт для Actionscript» и сделайте «Идентификатор:» текст «paneContentMC1». Закройте Свойства, а затем создайте случайную графику на временной шкале в paneContentMC.

Создайте еще один видеоклип с именем tooltip. Откройте Свойства. Установите флажок «Экспорт для ActionScript» и создайте подсказку «Идентификатор:» текст ».

Наконец, на главной временной шкале сцены создайте ScrollPane и задайте для свойства "contentPath" "paneContentMC1". Поместите команду stop(); в Actionscript для первого кадра этой временной шкалы.

Там у вас есть всплывающая подсказка. Как вы это исправите?

Вам нужно прикрепить всплывающую подсказку к объекту за пределами содержимого ScrollPane. Поскольку вы не знаете, какие объекты могут существовать или не существовать на сцене во время выполнения, выберите глобальный объект, например _root.

Перейдите в ActionScript внутри paneContentMC. Измените код на:

var mc1:MovieClip = _root.attachMovie("tooltip1","tooltip1A", _root.getNextHighestDepth());

var mouseListener:Object = new Object();
mouseListener.onMouseMove = function() {
    _root.tooltip1A._x = _xmouse;
    _root.tooltip1A._y = _ymouse;
    updateAfterEvent();
};

Это не решает проблему полностью, поскольку tooltip1A следует за мышью вокруг ScrollPane. Но если tooltip1A прослушивает события движения от paneContentMC, а не от мыши, это должно сработать.

(отредактировано для исправления ошибки голосования.)

...