Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Получить ссылку на экземпляр скин класса (http://www.flasher.ru/forum/showthread.php?t=177335)

Rundll 29.03.2012 20:27

Получить ссылку на экземпляр скин класса
 
Здравствуйте.

Подскажите, существует ли возможность получить ссылку на экземпляр скинирующего класса с целью управления realtime отрисовкой.

Скин-класс объявлен в MXML таким вот образом:

Код AS3:

.boxStyle
        {
            borderSkin : ClassReference("com.temp.skinClass");
            background-color: white;
            font-size: 10;
            borderColor: black;
            borderThickness: 1;
            placement: center;
        }

и применяется в классе boxClass таким вот образом:

Код AS3:

box.styleName = "boxStyle";

Как в классе boxClass получить ссылку на созданный экземпляр skinClass?

alatar 29.03.2012 20:35

Так. Только зачем?

Rundll 29.03.2012 20:41

Хочу динамически отрисовывать разные формы скинирующегося объекта, как то так. Можете посоветовать более лучшее решение?

alatar 29.03.2012 20:43

Скины можно менять в рантайме.
Цитата:

Хочу динамически отрисовывать разные формы скинирующегося объекта
Что вы под этим подразумеваете?

Rundll 29.03.2012 20:50

Хочу сделать что-то типа всплывающей подсказки с хвостиком, зафиксированным на сцене. Т.е. как бы жмем по сцене и в месте клика устанавливается "якорь" от которого тянется хвостик к боксу с инфой. Предполагается, что бокс можно тягать по сцене, а конец хвостика будет зафиксирован, при этом сам хвостик будет растягиваться и менять углы наклона. Проблема в том, что все это должно еще и скиниться. Подскажите, как лучше реализовать?

Добавлено через 6 минут
Еще хотелось бы все это дело запихнуть в один instance, который можно было бы добавлять на сцену и в разном количестве.

alatar 29.03.2012 21:14

Создать "хвостик" на основе FilledElementhelp.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/spark/primitives/supportClasses/FilledElement.html"]FilledElement[/url], который рисует клин от 0,0 до переданной ему точки. В скине поставить его в центр позади фона. Объявить его как SkinPart. После добавления передать ему координаты клика.

Если вышеописанное вам ничего не говорит (а после вашего дополнения у меня закралось такое подозрение), то идете сюда.

Rundll 29.03.2012 22:26

Спасибо за помощь. Я думал об этом варианте, но я так понимаю, что в этом случае хвостик будет иметь линию разрыва с боксом (имею ввиду, что визуально элемент будет состоять из двух частей, собственно бокса и клина, который будет перекрываться бордером бокса), а хотелось бы сделать так, чтобы линия была монотонная. Кроме того по задумке хотелось чтобы в зависимости от расположения бокса относительно точки фиксации хвостика, этот самый хвостик умел переключаться между углами бокса (верхние углы - бокс ниже точки фиксации, нижние углы - бокс выше этой точки).

Astraport 29.03.2012 22:34

Кажется где-то встречал компонент Callout. Это же он? Только настраиваемый.

Rundll 29.03.2012 22:35

Да, точно, эта штука называется callout)

Добавлено через 7 минут
Но библиотечный callout кажется не умеет делать то, что мне нужно.

alatar 29.03.2012 23:24

Цитата:

будет перекрываться бордером бокса
Не будет, если сделать у бокса отдельно бордер, отдельно заливку, а между ними поставить клин.

Astraport 29.03.2012 23:25

Мобильный не подойдет, но можно этот посмотреть http://www.adobe.com/devnet/flex/sam...g_callout.html
Или тут http://aaronhardy.com/flex/advanced-callout-component/
Или тут вот но для as3 http://www.razorberry.com/blog/archi...ubble-snippet/
Видимо нужно сделать его перетаскиваемым?

Rundll 29.03.2012 23:54

Спасибо всем за оперативную помощь, буду курить доки.

Цитата:

Видимо нужно сделать его перетаскиваемым?
Да, совершенно верно, но так, чтобы хвост был зафиксирован в точке, а бокс тягался по сцене, соответственно хвостик будет постоянно перерисовываться.

Astraport 30.03.2012 00:38

В принципе интересная штука, если что получится - выкладывайте:)

Rundll 30.03.2012 09:46

Да, пример который вы дали выше - классный! Вопрос вдогонку: как сделать так, чтобы бокс таскался только при наведении мыши на область бокса (hitTest?), а не область хвостика?

Добавлено через 1 час 25 минут
И еще, как все-таки получить ссылку на экземпляр скин класса? У меня контейнер унаследован от класса SimpleContainer у которого нет метода get skin.

djyamato 30.03.2012 15:09

Вложений: 1
Вам что-то подобное нужно ?
http://divisionby0.org/kategoriya-ra...a-komiksa.html
http://divisionby0.org/kategoriya-ra...dolzhenie.html

могу выложить компоненты флексовые

alatar 30.03.2012 16:45

Цитата:

И еще, как все-таки получить ссылку на экземпляр скин класса?
Не заметил что у вас mx компонент. У mx контейнеров скин доступен в переменной border в пространстве имен mx_internal.

Rundll 30.03.2012 21:11

Цитата:

Вам что-то подобное нужно ?
Интересные реализации, изучу более внимательно на досуге.

Цитата:

У mx контейнеров скин доступен в переменной border в пространстве имен mx_internal.
Спасибо за ценную информацию!

Astraport 30.03.2012 21:52

Цитата:

могу выложить компоненты флексовые
Был бы признателен;)

djyamato 31.03.2012 00:40

Цитата:

Сообщение от Astraport (Сообщение 1072092)
Был бы признателен;)

Прикрепил к своему посту выше


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

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