Перейти к содержимому

MatroseFuchs

Разработчик
  • Публикации

    24
  • Зарегистрирован

  • Посещение

  • Бои

    318

Оценка

63 Хорошая

2 подписчика

О MatroseFuchs

  • Звание
    Матрос
  • Знак

Посетители профиля

Блок посетителей профиля отключен и не будет отображаться другим пользователям

  1. MatroseFuchs

    [modAPI] Content SDK

    ModsSDK обновляется каждый патч как и раньше, архив доступен в общем хранилище ресурсов, ссылку на первой странице этой темы я обновил.
  2. Добавление в группу "Мододел": Создание и/или публикация модификаций. Соблюдение правил форума и правил публикаций модификаций (далее «Правила»). Постоянная поддержка и своевременное обновление своих опубликованных модификаций. Статус "Мододел" присваивается автору публикации по прошествии не менее трех следующих версий игры с момента публикации, при условии соблюдения Правил. Статус "Мододел" присваивается автору публикации модификации, несмотря на то, что автором модификации может быть другой человек или группа лиц. Если модификация была создана группой разработчиков, то у такой группы должен быть представитель, который будет автором темы (публикации) и ответственным лицом такой публикации. Представитель группы получит статус "Мододел". Соавторы модификации, перечисленные в публикации, не получаю форумную группу «Мододел». Удаление из группы "Мододел": Нарушение правил форума и правил публикаций модификаций. Намеренное изменение содержимого опубликованной темы, содержащее в себе файлы с запрещённым контентом, вредоносным содержимым. Прекращение поддержки всех опубликованных модификаций более 3(трех) версий клиента игры. Публикация модификации, при установке которой, пользователю, без его ведома, устанавливаются любые дополнительные вредоносные файлы и программы, не относящиеся к модификации, а также файлы и программы не входящие в описание модификации. Что вы получаете от статуса «Мододел»: Доступ к скрытому разделу форума «Скрытый раздел создателей модов». Доступ в телеграмм-конференцию мододелов и разработчиков. Доступ в Дискорд канал мододелов и разработчиков. Общение с другими мододелами и разработчиками на тему модификации клиента. Получение внутриигровых бонусов в случае включение вашего мода в официальный модпак. Система поощрений: Администрация проекта WOWS оставляет за собой право поощрять участников группы «Мододел» за осуществление вклада в развитие проекта.
  3. Модификация – файл или совокупность файлов, относящихся к проекту WOWS, взаимодействующие прямо или опосредованно с клиентом игры (файлами клиента), и/или каким-либо образом изменяющие его поведение. Правила публикации модификаций: Все публикации и содержание модификаций должны соответствовать основным правилам форума и правилам раздела модификаций. Публикации проверяются администрацией раздела в срок от одного до трех дней. Если по истечении трех дней публикация не была одобрена и не были предъявлены замечания для устранения, автору публикации необходимо связаться с администрацией раздела в ЛС форума. Модификация должна относится к проекту WOWS. Модификация должна соответствовать описанию. Опубликованная модификация должна соответствовать текущей версии клиента игры. Публикации, имеющие спорные или пограничные моменты, разрешаются по усмотрению администрацией форума. Если замечания к публикации не будут устранены в течение 7 дней, то такая публикация будет перемещена в раздел архива модификаций. В названии публикации необходимо указывать версию совместимости с клиентом и название модификации (например: [0.8.0.0] My SuperMod), если модификация не зависит от версии клиента игры, то указывается [ALL]. Публикация модификации другого автора может быть только по согласованию с самим автором модификации. В этом случае автор модификации должен сообщить со своего основного аккаунта в ЛС администратору раздела (MatroseFuchs) о своем согласии. Содержание публикации: Обязательно: Описание модификации. Ссылка для скачивания на файловое хранилище (Google Drive, Yandex.Disk, Cloud.Mail, Dropbox и т.д.). Инструкция по установке в описании публикации или в архиве модификации. При публикации модификации другого автора, в описании указывается автор такой модификации. Интерфейсные и графические модификации в описании должны содержать скриншоты (не более трех) отражающие суть модификации. При наличии особенностей и любой другой важной информации при использовании модификации, информация об этом должна быть добавлена в описание и выделена. По желанию автора публикации: Дополнительные изображения и видеозаписи добавляемые для описания модификации должны быть скрыты в спойлерах. Автор модификации может в своей теме указать свои веб-кошельки/счета для того, чтобы пользователи могли добровольно поддержать автора любой доступной для них суммой. Рекомендуется в теме публиковать скриншот результата проверки с VirusTotal Модификация должна распространяться бесплатно, продажа модификаций запрещена. Модификация публикуется в соответствующем ей разделе (см. ниже). С выходом очередного обновления клиента игры, модификация, при необходимости, должна быть обновлена до текущей версии игры в течение трех дней с момента выхода обновления клиента, в противном случае модификация будет перемещена в раздел архива модификаций до момента обновления её до актуальной версии клиента. После обновления модификации, в заголовке публикации должна быть изменена версия клиента на актуальную. После того как модификация, находящаяся в разделе архива модификаций, была обновлена до актуальной версии игры, автору публикации необходимо написать администрации раздела модификаций (MatroseFuchs) для проверки. Администрация проекта придерживается политики невмешательства во взаимоотношения мододелов, однако при необходимости Администрация может принять окончательное решение в спорной ситуации, рассмотрев соответствующие аргументы каждой из сторон. Представитель Администрации проекта по решению спорных ситуаций - MedvedevTD. Запрещено публиковать, а также добавлять или изменять в существующих публикациях: Программы и модификации, которые помогают целиться способами, не предусмотренными в игре, например отображают маркеры упреждения. Программы (боты или скрипты), которые берут управление каким-либо аспектом игры на себя. Программы и модификации, которые как-либо работают с файлом клиента игры scripts.zip или заменяют его. Материалы содержащие изображения или видеозаписи обнаженных натур, эротического или порнографического характера. Материалы, содержащие немецкую нацистскую (фашистскую) символику. Ссылки на сторонние ресурсы, за исключением ссылки на файловое хранилище для скачивания модификации и фан-сайты, в соответствии с основными правилами форума, в данном подразделе и на форуме запрещены. Ссылки на сайты, которые не вошли в список фан-сайтов, будут удаляться. Администрация форума оставляет за собой право не одобрять (запрещать) публикации по своему усмотрению.
  4. Цвета Ограниченная палитра специальных цветов используется в игре для текстов и иконографики: В общем случае, цвета можно выбирать из палитры так называемых безопасных Web-цветов:
  5. MatroseFuchs

    ModAPI (обсуждение)

    На основном предварительно 0.8.1 или 0.8.2, насчет ПТ не обещаю.
  6. MatroseFuchs

    Правка Unbound XML

    Спасибо, что обратили внимание, мы добавили недостающие файлы.
  7. MatroseFuchs

    ModAPI (обсуждение)

    пополним в одном из обновлений
  8. MatroseFuchs

    Unbound How-To

    Разберем создание модификаций с использованием Unbound на примере мода, отражающего наш процент побед в каруселе кораблей. Для создания модификации нам нужно решить три основные задачи: Получить нужные данные; Правильно обработать эти данные; Отобразить результат. Данную статистику мы можем наблюдать в клиенте игры в порту в разделе «Профиль» → «Сводка»: Заметим, что процент побед указан для конкретного типа боёв; это тоже нужно учесть при обработке данных. Теперь разберёмся, как получить эти данные. Для работы с файлами клиента игры, необходимо распаковать их при помощи утилиты. Для нашего мода распакуем директорию res\gui\unbound. Распакованные файлы будут лежать в “..\World_of_Warships\res_unpack\gui\unbound”. В полученных файлах нам нужно найти те, которые работают со статистикой процента побед. Зададим в поиск по всем файлам наиболее близкое по смыслу слово “victory” и посмотрим на результат: По полученным совпадениям увидим файл dock.xml, он же наш порт, а также наиболее близкое по значению совпадение. Так как наш профиль находится в порту, то логично начать поиски в этом файле. Откроем dock.xml и исследуем место совпадения поиска. Тут мы обнаруживаем строкой выше атрибут winRate: Вероятно, это то, что нам нужно. Как видим, этот параметр содержится в поле statData; теперь посмотрим, где оно находится. Поднявшись немного вверх, обнаружим что statData инициализируется в основном блоке <block className="PlayerSummary">, а также является свойством компонента dataComponent, который, в свою очередь, содержится в сущности statDataEntity. Посмотрим на содержимое statData. К сожалению, при работе с XML-файлами нет возможности использовать инструменты отладки, поэтому для отображения содержимого создадим обычный текстовый блок. Сразу добавим стилевой класс, чтобы текст выводился белым, а не чёрным, как по умолчанию: Так как некоторые параметры могут содержать в себе информацию не только в виде строковых или численных значений, но и в формате объекта, то для корректного отображения желаемого параметра используем метод reflect(), который аналогичен функции rtrace() в AS3. Т.к. этот блок будет выводить текст черным цветом, то рекомендую для удобства трассировки добавить в блок класс textDefault, который сделает цвет текста белым с контуром. Обратите внимание! Чтобы вносимые нами изменения в XML-файл отображались в клиенте игры, необходимо собрать SWF-файл и положить его в «World_of_Warships\res_mods\<Версия игры>\gui\flash», рядом положить USSExpressionsLoader.xml, в котором добавим путь к нашему SWF-файлу, а измененный XML — в «World_of_Warships\res_mods\<Версия игры>\gui\unbound» и запустить игру. После каждого изменения делаем новую сборку SWF-файла. Перейдя на вкладку «Профиль → Сводка» (мы помним, что статистика отображается в сводке профиля игрока), мы увидим, что отобразилось содержимое statData: Если мы изменим тип боя для отображения статистики в профиле, то можем увидеть, что и в statData произошли изменения: теперь данные отображаются по выбранному типу боя. Среди полученных данных найдём shipsList, состоящий из словарей с полями по каждому кораблю, среди которых есть и winRate. В dock.xml можем также заметить, что shipsList тоже содержится в dataComponent и уже объявлен в отдельной переменной. Можем считать, что первую задачу мы выполнили: теперь мы знаем, что процент побед по каждому кораблю содержится в shipsList в компоненте dataComponent. Теперь разберёмся, как получить те же данные, но для карусели кораблей. Начнем с того, что нам нужно отображать статистику по выбранному типу боя, который выбирается рядом с кнопкой входа в бой. Найдем этот параметр в коде. Как видим ниже, за тип боя отвечает переменная battleType: Можем предположить, что эта переменная, или что-то похожее на неё, будет располагаться также в блоке рядом с элементом кнопки «В БОЙ!». Попробуем найти элемент этой кнопки; поищем в коде что-нибудь, связанное с “button” и “battle”. Обнаружим вот такие элементы: StartBattleButtonBig и StartBattleButtonSmall, а ниже — BattleTypeChooser: Это похоже на то, что нам нужно. Исследуем эти элементы и вот что наблюдаем: Есть переменная selectedBattle, которая хранит в себе тип выбранного боя selectedBattle.type. Теперь мы знаем, как получить доступ к типу выбранного боя. Теперь разберёмся, как получить shipsList по выбранному типу боя. Мы уже знаем, что dataComponent содержится в statDataEntity. Посмотрим, что там полезного для нас найдётся: В процессе поиска shipsList мы могли заметить, что сущность (Entity) statDataEntity является элементом коллекции statDataEntities. Заглянув в эту коллекцию, обнаружим, что она состоит из одного элемента и содержит компоненты dataComponent и rankedSeasonHistory. Если взять энтити с другим компонентом и так же содержащий компонент dataComponent, и заглянуть в нее, то обнаружим, что компонент dataComponent этой энтити содержит информацию, относящуюся к выбранному компоненту. Можем заметить, что компонент rankedSeasonHistory содержит поле gameType, которое отвечает за тип боя. Следовательно, если мы зададим этому компоненту тип выбранного нами боя, то можем получить из dataComponent список shipsList с нужным процентом побед. Теперь проверим нашу гипотезу. Стоит заметить, что обращение к полю объекта осуществляется через точку (“object.field”) как к его свойству в AS3. В коде ниже можем заметить связку, которая даёт нам сущность с отфильтрованным компонентом по требуемому полю: Воспользуемся этим. Теперь получим значение выбранного типа боя: возьмем сущность, содержащую компонент rankedSeasonHistory с выбранным типом боя, а из компонента dataComponent (который, как мы уже знаем, будет у нашей сущности) получим shipsList и выведем на экран: Итак, мы видим список имеющихся у нас кораблей по выбранному типу боя с полями процента побед (строковое представление – winRate, числовое представление – winRateNum). Выберем другой тип боя и увидим, что в shipsList теперь отражаются данные по кораблям, которыми мы играли в этом типе боя. Можно считать, что и вторую задачу мы выполнили. Теперь перейдём к визуализации результата. Прежде всего, нам нужно найти тот элемент, в котором мы будем выводить наш процент побед. Искать будем карусель кораблей, и в ней — слот корабля. Поиск карусели по всем XML файлам выдаст большое количество совпадений, но если приглядеться, то обнаружим среди файлов наш dock.xml. Немного поискав и используя в качестве инструмента отладки обычный текстовый блок со значением “Hello World!” (см. документацию, раздел «Блоки»), обнаружим основной элемент карусели CarouselItem: Тут можно обработать наш список кораблей и получить процент побед для каждого корабля в отдельности. Для начала получим отфильтрованный список по типу боя: При работе со списком воспользуемся связкой indexOf, которая позволит получить элемент списка для текущего слота корабля. Очевидно, что для каждого слота карусели будет определяться свой корабль с различными свойствами, среди которых может быть и его идентификатор (id). Пролистав немного ниже, убедимся, что так и есть: Воспользуемся связкой indexOf, получим индекс элемента списка для текущего слота корабля и возьмем значение winRate. Взглянем на результат: Как видим, у нас отображается процент побед по каждому кораблю в зависимости от выбранного типа боя. Пойдем дальше: найдем элемент самого слота, большого и маленького, чтобы разместить процент побед внутри самого слота. Продолжив поиски, найдем ShipCarouselDefaultSlot – слот обычного размера, а ниже — элемент слота маленького размера ShipCarouselSmallSlot. Разберёмся, как передаются данные в слот — например, уровень корабля, и какие связки при этом используются. В элементе слота найдём блок, отвечающий за размещение значения уровня корабля: Здесь же видим, какой используется стиль текста, а также стиль расположения блока внутри элемента. Теперь посмотрим, как этот параметр передаётся в элемент слота: Передадим наше значение процента побед аналогичным способом: Далее добавим блок для отображения значения с такими же отступами сверху и справа, и со стилем текста, аналогичным уровню корабля, чтобы все элементы слота визуально сочетались между собой: Добавим последние штрихи, а именно — цветовую градацию процента побед аналогично танковому моду, и зададим условие: при отсутствии винрейта текстовый блок будет пустым. Для этого возьмём уже числовое представление процента побед, а для изменения цвета текста – связку <bind name="style" value="'textColor'; …”>: Продублируем блок для маленького слота: В результате получили модификацию, отражающую процент побед корабля для выбранного типа боя в компактной и обычной карусели. П.С. Не забываем после каждого изменения XML-документа пересобрать SWF-файл мода и заменить файлы в соответствующих папках в res_mods.
  9. MatroseFuchs

    ModAPI (документация)

    FlashAPI - StageModule Методы "StageModule" предоставляют возможность работать со сценой "Stage". Доступные методы: gameAPI.stage gameAPI.stage.addChild(child:displayObject) gameAPI.stage.addChildAt(child:displayObject, index:int) gameAPI.stage.removeChild(child:displayObject) gameAPI.stage.removeChildAt(index:int) gameAPI.stage.width() gameAPI.stage.height() gameAPI.stage.addChild(child:displayObject) Работает аналогично методу "addChild", добавляет экземпляр "displayObject" на сцену "Stage" для визуализации объекта. Входной аргумент "child" - создаваемый графический объект Flash-а. gameAPI.stage.addChildAt(child:displayObject, index:int) Аналогично методу "addChildAt", добавляет DispalyObject на определенный слой Stage'a. Входные аргументы: "child" - создаваемый графический объект Flash-а; index - порядковый номер слоя, на который должен быть добавлен DisplayObject. gameAPI.stage.removeChild(child:displayObject) Метод удаляет DispalyObject со Stage. Входной аргумент "child" - DisplayObject, который должен быть удален со Stage. gameAPI.stage.removeChildAt(index:int) Метод удаляет выбранный слой со Stage. Входной аргумент "index" - порядковый номер слоя, с которого должен быть удален DisplayObject. gameAPI.stage.width() Метод возвращает ширину сцены Stage. Возвращаемое значение имеет тип данных "Number". gameAPI.stage.height() Метод возвращает высоту Stage Возвращаемое значение имеет тип данных "Number".
  10. Типографика Шрифт Основной шрифт, используемый в игре, это Warhelios Condensed. Он бывает в двух начертаниях — обычном (WarheliosCondC) и жирном (WarheliosCondCBold). Правила использования Следует избегать использование своих стилей текста, и вместо этого использовать готовые стилевые классы: Класс Для чего используется $TextDefault13NM второстепенный (вспомогательный) текст $TextDefault15NM основной класс, используйте его в большинстве случаев $TextDefault17NM заголовки 4 уровня $TextDefault19NM заголовки 3 уровня $TextDefault21NM заголовки 2 уровня $TextDefault23NM заголовки 1 уровня $TextDefaultBoldNM имя корабля и его уровень, шапки таблиц, заголовки разворачиваемых списков, заголовки групп характеристик $TextDefaultBold17NM заголовки параграфов $TextDefaultBold19NM заголовки 3 уровня повышенной значимости $TextDefaultBold21NM заголовки 2 уровня повышенной значимости $TextDefaultBold23NM заголовки 1 уровня повышенной значимости, заголовки окон Пример стилизации текста Исходный текст: <block type="text""> <bind name="text" value="'Hello, world!'"/> # этот текст будет чёрного текста и в гарнитуре Arial </block> Теперь добавим стандартный стилевой класс, использующий белый цвет по умолчанию: <block type="text""> <styleClass value="$TextDefaultNM/> # теперь текст стал белым, с кеглем 15px, в гарнитуре Warhelios Condensed <bind name="text" value="'Hello, world!'"/> </block> Теперь поменяем текст, переопределив текст из класса своим, добавив атрибут (textColor) в блок (style): <block type="text""> <styleClass value="$TextDefaultNM/> <style> <textColor value="0xFFCC66"/> # золотистый цвет премиумных кораблей </style> <bind name="text" value="'Hello, world!'"/> </block>
  11. Стили Облик элемента задаётся набором атомарных стилевых свойств, таких как высота, ширина, цвет, расположение и так далее. Свойство Значения Описание Единица измерения Пример Стили, определяющие поведение блока flow vertical horizontal htile vtile По умолчанию: vertical Порядок расположения дочерних блоков внутри родительского. vertical — дочерние элементы располагаются вертикально, сверху вниз; horizontal — слева направо; htile — мощение слева направо, сверху вниз; vtile — мощение сверху вниз, слева направо. — (flow htile) overflow scroll hidden Поведение блока, когда содержимое в него не помещается. scroll — появляется полоса прокрутки; hidden — то, что не влезло, обрезается границами элемента. — (overflow hidden) hitTest true / false По умолчанию: true Разрешать ли коллизию с курсором мыши (hitTest false) Стили, определяющие расположение блока и его размеры position relative absolute Тип позиционирования элемента. По умолчанию — относительный. Если абсолютный, то все остальные блоки не — (position absolute) top Численное значение+ единица измерения пиксели (px),проценты (%),проценты от ширины экрана (sw), проценты от высоты экрана (sh),адаптивные проценты (%f) (top 16px) bottom Число+ единица измерения px, %, sw, sh, %f left Число + ед. изм. X-координата положения левого края элемента относительно родителя.По умолчанию — 0. px, %, sw, sh, %f right Число + ед. изм. X-координата положения правого края элемента относительно родителя. Используется для выравнивания по правому краю родителя.По умолчанию — 0. px, %, sw, sh, %f width Число + ед. изм. Ширина элемента. По умолчанию — 0. px, %, sw, sh, %f height Число + ед. изм. Высота элемента. По умолчанию — auto, т.е. вычисляется на основе высоты содержимого. px, %, sw, sh, %f maxWidth Число Максимальная ширина По умолчанию — auto. только число! (maxWidth 256) Баг: если указать размерность, например, (maxWidth 256px), то работать не будет. maxHeight Число Максимальная высота.По умолчанию — auto. только число! см. выше Стили, определяющие отступы элемента от соседей внутри родителя marginLeft Число + ед. изм. Отступ слева px, %, sw, sh, %f (marginLeft 16px) marginRight Число + ед. изм. Отступ справа px, %, sw, sh, %f marginTop Число + ед. изм. Отступ сверху px, %, sw, sh, %f marginBottom Число + ед. изм. Отступ снизу px, %, sw, sh, %f margin Строка Составной отступ. Принимает четыре параметра через вертикальный разделитель. Два варианта использования: (margin left|right|top|bottom) или (margin leftAndRight|topAndBottom) px, %, sw, sh, %f (margin 16px|8px|16px|8px) (margin 32px|24px) Стили, определяющие отступы для дочерних элементов внутри самого элемента paddingLeft Число + ед. изм. Сдвиг содержимого элемента от его левой границы px, %, sw, sh, %f (paddingLeft 16px) paddingRight Число + ед. изм. ... от правой границы px, %, sw, sh, %f paddingTop Число + ед. изм. ... от верхней границы px, %, sw, sh, %f paddingBottom Число + ед. изм. ... от нижней границы px, %, sw, sh, %f padding Строка Составной сдвиг дочерних элементов px, %, sw, sh, %f Стили, определяющие заливку alpha Число в диапазоне [0; 1] Уровень непрозрачности. 0 — полностью прозрачный, 1 — полностью непрозрачный. По умолчанию 1. — (alpha 0.9) backgroundColor Число в шестнадцатеричном формате с прозрачностью Цвет фона. По умолчанию 0x0 — (backgroundColor 0x33000000) backgroundImage Строка Путь к фоновой картинке. Используется только через (bind style) — (bind style "'backgroundImage'; 'url:../events/british_event/icons_rules/icons_rule_operation_battle.png' ) backgroundRepeatX true / false Повторять ли картинку по горизонтали — (backgroundRepeatX true) backgroundRepeatY true / false Повторять ли картинку по вертикали — backgroundStretchX true / false Разрешать ли растягивать картинку по горизонтали — backgroundStretchY true / false Разрешать ли растягивать картинку по вертикали — Текстовые стили fontSize Кегль шрифта textColor Цвет шрифта в шестнадцатеричном формате без альфа-канала. По умолчанию 0x000000 textAlign left / right / center Выравнивание текста по левому или правому краю По умолчанию — left. marginText Отступ текста от границы текстового блока multiline true / false Разрешать ли перенос текста на следующую строку leading Интерлиньяж (относительное расстояние между строками текста) Прочие стили widthByChildren heightByChildren itemWidth itemHeight selectable focusable mouseEnabled mouseChildren backgroundSprite backgroundSize scrollbar dropShadowFilter glowFilter blurFilter layout wheelScrollSpeed Отдельные стилевые свойства можно объединять в стилевые классы class — стилевой класс; style — выражение, задающее стиль элемента в конкретно этом блоке (так называемый inline-стиль) через перечисление стилевых свойств. атомарные стилевые свойства, По аналогии с HTML, применяется то стилевое свойство, которое применено к элементу последним: <css name="$SomeClass"> <backgroundColor value="0xff000000"/> # заливка белым цветом </css> <block className="$SomeElement"> <styleClass value="$SomeClass"/> # в классе определена белая заливка... <style> <backgroundColor value="0xff00ff00/> # ...но по факту, она будет синяя, потому что это свойство применено последним </style> </block>
  12. Блоки Элемент — это независимый корневой блок самого верхнего уровня, внутри которого задаются остальные дочерние блоки. Пример описания корневого блока в XML файле: <block className="SomeClassName"> Объявление элемента нужно в двух случаях: Когда мы хотим создать новое окно; Когда мы хотим создать новый элемент, который будет использоваться в любом существующем окне. При этом, элемент может создаваться как динамически (на основе выполнения логических условий), так и статически. Пример динамического появления блока — кнопка «Забрать награду» в календаре: Дочерние блоки бывают следующих типов: block — спрайтовый блок; <block> ... </block> tf — текстоый блок; <block type="text"> mc — блок типа Movie Clip, определённый в каком-либо флэшовом *.fla-файле и экспортированный в ActionScript; <block className="some_class_name" type="native"> Если выполнить код выше, то на экране мы ничего не увидим, потому что по умолчанию блоки создаются без цветовой заливки, с нулевой высотой и шириной. Для управления их обликом как раз и используются стили, о них речь ниже.
  13. Список поддерживаемых событий (events) для мыши Unbound поддерживает лишь часть мышиных событий из ActionScript 3.0. Пример: (bind dispatch "'click'; 'eventName'; {}") событие описание click Щелчок левой кнопкой мыши mouseDown Срабатывает в момент нажатия левой кнопки мыши mouseUp Срабатывает в момент отпускания левой кнопки мыши mouseWheel Прокрутка колёсика мыши в любом направлении mouseOver Наведение указателя на элемент mouseOut Срабатывает в момент ухода указателя мыши с элемента mouseMove Срабатывает в момент движения указателя над элементом rollOver Аналогично mouseOver, но не сработает над дочерними элементами rollOut Аналогично mouseOut, но не сработает над дочерними элементами Примечание В ActionScript есть разница между mouseOver/rollOver и mouseOut/rollOut, в Unbound она сохраняется. Это значит, что событие mouseOver сработает как над родителем, так и над детьми, в отличие от rollOver, который сработает один раз над родителем и не сработает над детьми.
  14. Список байндингов DataHub 2.0 DHCollectionRepeatBinding DHCollectionGeneratorBinding DHCollectionBinding DHEntityBinding DHHandleEventBinding DHWatchBinding DHDataRefBinding
×