Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Создание инфо-панели для MOUSE_OVER (http://www.flasher.ru/forum/showthread.php?t=203654)

Fogflasher 04.10.2013 10:00

in4core, Спасибо за пример, попробую разобрать структуру.

Сразу отмечу, что некоторые import'ы несколько устрашают.

Этот:
Код AS3:

 import com.in4core.text.DisplayText;

видимо ваш самописный.

in4core 04.10.2013 17:26

Ну он вам и не нужен особо, обычный TF делайте и все. Это просто кастомное текстовое поле мое

AlexCooper 04.10.2013 18:36

Цитата:

Сообщение от Fogflasher (Сообщение 1147587)
AlexCooper, к сожалению, мое понимание того, что такое интерфейсы и как они работают, еще не превышает наверное и 10% от полного.
Поэтому, я не знаю как адаптировать вашу идею к данному примеру.

Fogflasher дык я ж Вам всё написал. Стоило было хотя бы попробывать мой пример)
Цитата:

Сообщение от AlexCooper (Сообщение 1147536)
Я бы реализовал для объектов, которым нужно выводить справку, интерфейс IHint. Соответственно был бы геттер description, а в MOUSE_OVER проверял
Код AS3:

if (e.target is IHint) trace( (e.target as IHint).description );

Добавлено через 5 минут
Код AS3:

package  {
 
        public interface IHint {
 
                // Interface methods:
                function get description ():String;
        }
 
}

Код AS3:

package  {
 
        import flash.display.MovieClip;
 
 
        public class Bober extends MovieClip  implements IHint {
 
                public function get description():String {
                        return 'Это бобёр';
                }
 
                public function Bober() {
                        // constructor code
                }
        }
 
}



Fogflasher 06.10.2013 18:01

in4Core, Нда, сложновато для моего уровня. Понял код процентов на 40%.

Основные заморочки примерно следующие:
- Dictionary: у Мука про этот класс ничего нет, даже не знаю как он работает.

- Манипуляции со свойством .stage. Например я смутно понимаю суть выражений типа:
Код AS3:

_holder.stage.removeEventListener(MouseEvent.MOUSE_MOVE , onMouseMove);

...то есть мы удаляем слушатель... непонятно с чего.

- Абстрактные выражения, типа:
Код AS3:

- e.currentTarget.removeEventListener(Event.ADDED_TO_STAGE, onAdded);

...где еще надо понять чем является currentTarget, и к какому классу принадлежит функция onAdded, то ли к PopupHelp, то ли к PopupHelpMessage.

Наверное, было бы чуть проще понять хитросплетения всех объектов и вызовов, наблюдая визуально за swf-кой.


AlexCooper, мне непонятно с последним кодом.

Вот этот класс Bober, это аналог, например, Круга?
То есть, я должен ДЛЯ КАЖДОГО типа объектов, которые у меня есть в проекте, написать ОТДЕЛЬНЫЙ вот такой класс?
А как это сделать для классов, которые галочкой автоматически создаются?

Или надо каждому типу объектов сделать наследование от Bober?
Но тогда непонятна идея с функцией return, ведь она всегда возвращает "Это бобёр", а должна возвращать различные строки: "Это круг", "Это квадрат", "Это текст"...

in4core 07.10.2013 02:09

Dictionary - это словарь, Мук тут не причем. Вы пользуетесь Object? Так вот dicionary - типизированный объект, так сказать. Словарь используется для хранения ключей. Ничего сложного
Код AS3:

_holder.stage.removeEventListener(MouseEvent.MOUSE_MOVE , onMouseMove);

Сначала разберитесь кто такой _holder. Это как минимум DO - значит у него есть доступ к stage, а значит я могу добавить слушателя на стейдж или удалить.
Код AS3:

e.currentTarget.removeEventListener(Event.ADDED_TO_STAGE, onAdded);

Тут объяснять нечего, все понятно. Там понятно что он DOC, onAdded - принадлжеит к тому классу, в котором она создана, что за троллинг?

Fogflasher 07.10.2013 09:47

Да нету никакого троллинга.


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

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