Jump to content
Korean Random
wotunion

Кастомизируемые текстовые поля в окне боевого интерфейса

Опрос  

22 members have voted

You do not have permission to vote in this poll, or see the poll results. Please sign in or register to vote in this poll.

Recommended Posts

 

 

что фича не для дефолта. но уж очень вкусная:)
дануна!

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

ИМХРО не надо костылей и велосипедов, прошу обратить внимание на мой пост выше :))

 

Кстати, пора уже постить текущие реализации полей, обмен идеями, так сказать... (у меня их всего два, но все же...)

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
заманчиво укоротить простыни.. в тоже время понимаю, что фича не для дефолта. но уж очень вкусная:)

 

Важный  момент, уже выше писал, если эта фишка работает, стандартное написание тегов не отменяется

Но я все равно против нее и даже против пробелов, хотя код уже и готов

 

 

для улучшения читаемости кода... подобное реализовано в ПМод сессионной статистике, параметр "template":

 

 

мм.

Зачем так?

Пишите так, br  в конце строки это ж не страшно)

"format": "
      This is a demo of XVM text fields on battle interface. You may disable it in battle.xc<br/>
       Press '<font color='#60FF00'>J</font>' hot-key to show info field"
помимо абсолютных координат иметь возможность привязать поле к маркеру/строке в ушах с соответствующим "дублированием" поля по текущему количеству живых (мертвых) игроков       Как вариант: параметр "bihdTo" со значениями типа "markers(+normal/extended??)" / "playersPanel(+large/medium/etc.??)"

 

 

К маркерам не привяжется, к другим элементам можно, не к строке в ушах, а к ушам в целом, но динамическая привязка - я против, лишнее процессорное время

 

Дублирование поля == второе поле в конфиге с аналогичным наполнением

 

текущему количеству живых (мертвых) игроков - нужен макрос

 

 

скажем появилось поле --> прозвучал "дзиньк", пропало --> "бряк"       Как вариант - параметры "soundEventOpen(Close)": "name_sound_event" (загрузка банка со звуком есс-но должна быть прописана в sounds.xc)

кттс, я еще до звуков не дошел) 

 

 

повторюсь: нужен параметр фоновой картинки (в дополнение к параметру "format")       Как вариант - "bgImage" по типу одноименного параметра в clock.xc

 

Только в границах поддерживаемых AS тегов 

 

HTML Image tag

 
The tag lets you embed external image files (JPEG, GIF, PNG), SWF files, and movie clips inside text fields. Text automatically flows around images you embed in text fields. To use this tag, you must set the text field to be multiline and to wrap text.The tag supports the following attributes:
src: Specifies the URL to an image or SWF file, or the linkage identifier for a movie clip symbol in the library. This attribute is required; all other attributes are optional. External files (JPEG, GIF, PNG, and SWF files) do not show until they are downloaded completely.
width : The width of the image, SWF file, or movie clip being inserted, in pixels.
height: The height of the image, SWF file, or movie clip being inserted, in pixels.
align : Specifies the horizontal alignment of the embedded image within the text field. Valid values are left and right . The default value is left .
hspace: Specifies the amount of horizontal space that surrounds the image where no text appears. The default value is 8.
vspace: Specifies the amount of vertical space that surrounds the image where no text appears. The default value is 8.
id : Specifies the name for the movie clip instance (created by Flash Player) that contains the embedded image file, SWF file, or movie clip. This is useful if you want to control the embedded content with ActionScript.
checkPolicyFile: Specifies that Flash Player will check for a cross-domain policy file on the server associated with the image’s domain. If a cross-domain policy file exists, SWF files in the domains listed in the file can access the data of the loaded image, for instance by calling the BitmapData.draw() method with this image as the source parameter. For more information, see the “Flash Player Security” chapter in Programming ActionScript 3.0.
Flash displays media embedded in a text field at full size. To specify the dimensions of the media you are embedding, use the tag’s height and width attributes.

In general, an image embedded in a text field appears on the line following the tag. However, when the tag is the first character in the text field, the image appears on the first line of the text field.

 

тег должен работать

 

 

как можно больше макросов-событий "хороших и разных"
 

 

плюс

 

Тут скоро питон можно будет вызывать в макросе...)

 

 

Кстати, пора уже постить текущие реализации полей, обмен идеями, так сказать... (у меня их всего два, но все же...)
 

 

Можно поле в отдельный файл, как "плагин" будет после подключения в battleLabels.xc)

Edited by wotunion

Share this post


Link to post

Short link
Share on other sites

не дай бог написать какую-то букву в русской раскладке

плохо быть таким рассеянным.)

'решило многие проблемы и в частности с wwise'

post-10271-0-03481900-1460841466_thumb.png
 

Share this post


Link to post

Short link
Share on other sites

 

 

плохо быть таким рассеянным.)
 

А корявое оформление в клиенте заставит проверить, не закралась ли ошибка))

Share this post


Link to post

Short link
Share on other sites

 

 

Пишите так, br  в конце строки это ж не страшно)
"И биться сердце перестало..."

Это я к тому: " а что так можно было" О_о

попробовал - работает, начальные пробелы/отступы игнорятся... Красота.  :gawi:


 

 

Только в границах поддерживаемых AS тегов    HTML Image tag   тег должен работать
Так тэг и работает - вопросов нет... Только для совмещения картинки с фоном и текста на этом фоне надо создавать ДВА поля. А хотелось бы обойтись одним...

Share this post


Link to post

Short link
Share on other sites

 

 

Так тэг и работает - вопросов нет... Только для совмещения картинки с фоном и текста на этом фоне надо создавать ДВА поля. А хотелось бы обойтись одним...
 

Тут ограничение AS

просто картинку добавлять как-то, это уже battleImagesTemplates надо)

Share this post


Link to post

Short link
Share on other sites
Тут ограничение AS просто картинку добавлять как-то, это уже battleImagesTemplates надо)

Не буду назойливым - просто в крайний раз прошу посмотреть как реализовано отображение часов в ангаре (в т.ч. и опции выравнивания и тень и "bgImage") - понимаю, что AS3, но может есть подобное на AS2?

Edited by Kapany3uk

Share this post


Link to post

Short link
Share on other sites

Не буду назойливым - просто в крайний раз прошу посмотреть как реализовано отображение часов в ангаре (в т.ч. и опции выравнивания и тень и "bgImage") - понимаю, что AS3, но может есть подобное на AS2?

Сейчас гляну

 if (cfg.bgImage != null)
                createBackgroundImage(cfg.bgImage);
private function createBackgroundImage(src:String):void
        {
            // wild coding style :)
            this.addChildAt(App.utils.classFactory.getComponent("UILoaderAlt", UILoaderAlt, {
                autoSize: true,
                maintainAspectRatio: false,
                source: "../../" + Utils.fixImgTag(src).replace("img://", "")
            }), 0).addEventListener(UILoaderEvent.COMPLETE, function(e:UILoaderEvent):void {
                var img:UILoaderAlt = e.currentTarget as UILoaderAlt;
                var loader:Loader = img.getChildAt(1) as Loader;
                img.width = loader.contentLoaderInfo.content.width / scaleX;
                img.height = loader.contentLoaderInfo.content.height / scaleY;
            });
        }

 

 

@Kapany3uk,

addChildAt

В AS2 нет

Есть attachBitmap, но не знаю как оно

 

UPD.

.bmp это раз и даже если сработает, ничем не должно отличаться по сути от двух полей: одного с рисунком, второго без(допустим сделать textfield1.xc и textfield1Image.xc)

 

 

выравнивания и тень
 

Суть та же

Edited by wotunion

Share this post


Link to post

Short link
Share on other sites

 

 

В AS2 нет

Есть attachBitmap, но не знаю как оно

Понятно. Жаль.

Сварганил два поля - в принципе рабочий вариант... Заодно выяснил Z-порядок полей - аналогичен полям в ушах: нижнее поле в конфиге отображается на верхнем слое

Share this post


Link to post

Short link
Share on other sites

Сейчас гляну

Неправильное поведение фона и рамки - выделяется только текст, а не все поле...

 

'скрин'

post-24956-0-59694300-1460890320.jpg

 

'код'

    "XVMnightlyBuildNumber": {
      "enabled": true,
      "updateEvent": null, 
      "hotKeyCode": 43, 
      "onHold": true, 
      "x": 225,
      "y": 2,
      "width": 200,
      "height": 200,
      "alpha": 100, 
      "rotation": "", 
      "scaleX": "", 
      "scaleY": "", 
      "autoSize": "center",
      "align": "left", 
      "valign": "top",
      "antiAliasType": "advanced",
      "bgColor": "0x000000",
      "borderColor": "0xFFFF00", 
      "shadow": {}, 
      "currentFieldDefaultStyle": { "name": "$FieldFont", "color": "0xFFFF00", "size": 15, "align": "center", "bold": false, "italic": false, "display": "block", "leading": 1, "marginLeft": 2, "marginRight": 2},
      "format": "<img src='img://../mods/shared_resources/xvm/res/icons/xvm/22x22t.png' width='11' height='11' vspace='-1'> {{py:xvm_main.python._XVM_nightly_build_number._getNightlyBuildNumber()}}"
    },

Share this post


Link to post

Short link
Share on other sites

Неправильное поведение фона и рамки - выделяется только текст, а не все поле...

 

'скрин'

attachicon.gifshot_013.jpg

 

'код'

    "XVMnightlyBuildNumber": {
      "enabled": true,
      "updateEvent": null, 
      "hotKeyCode": 43, 
      "onHold": true, 
      "x": 225,
      "y": 2,
      "width": 200,
      "height": 200,
      "alpha": 100, 
      "rotation": "", 
      "scaleX": "", 
      "scaleY": "", 
      "autoSize": "center",
      "align": "left", 
      "valign": "top",
      "antiAliasType": "advanced",
      "bgColor": "0x000000",
      "borderColor": "0xFFFF00", 
      "shadow": {}, 
      "currentFieldDefaultStyle": { "name": "$FieldFont", "color": "0xFFFF00", "size": 15, "align": "center", "bold": false, "italic": false, "display": "block", "leading": 1, "marginLeft": 2, "marginRight": 2},
      "format": "<img src='img://../mods/shared_resources/xvm/res/icons/xvm/22x22t.png' width='11' height='11' vspace='-1'> {{py:xvm_main.python._XVM_nightly_build_number._getNightlyBuildNumber()}}"
    },

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

Скрин вроде соответствует настройкам

Если поле меньше 200х200, то это потому, что autosize у Вас включен

Edited by wotunion

Share this post


Link to post

Short link
Share on other sites

 

 

это потому, что autosize у Вас включен
Действительно, при отключении autosize рамка и фон как ожидалось

Любопытная особенность: если высоту и ширину поля вообще не задать (удалить), то поле не отображается, но остальные поля при нажатии хоткея "пропавшего" поля также перестают отображаться (все!)... 

Share this post


Link to post

Short link
Share on other sites

Действительно, при отключении autosize рамка и фон как ожидалось

Есть смысл уже py: использовать?

Sirmax писал что еще дорабатывается

Действительно, при отключении autosize рамка и фон как ожидалось

Любопытная особенность: если высоту и ширину поля вообще не задать (удалить), то поле не отображается, но остальные поля при нажатии хоткея "пропавшего" поля также перестают отображаться (все!)... 

 

Обязательный параметр, для него дефолта нет, можно сделать дефолт в 0, 0

Если запятую в конфиге забыть поставить, весь xvm работать не будет))

Edited by wotunion

Share this post


Link to post

Short link
Share on other sites
Есть смысл уже py: использовать? Sirmax писал что еще дорабатывается

Ну это так, проба пера :)) Проверял работоспособность (насколько знания позволяют) кастомного кода... Тут Макс уже пообещал юзвер-френдли использование

 

Обязательный параметр, для него дефолта нет, можно сделать дефолт в 0, 0

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

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

 

упд

в идеале дефолтные параметры должны быть такими, что если юзвер включит поле: "enabled": true, и впишет в "format" хоть что-то, то это "что-то" должно отобразиться в левом верхнем углу экрана (код поля в две строки)

@wotunion, предлагаю дефолтные параметры:

'...'

скрин при коде

"my_field": { "enabled": true, "format": "This is a demo of XVM text fields on battle interface" }

post-24956-0-91925600-1460895067_thumb.jpg

 

по умолчанию:

    "default": {
      "enabled": false,
      "updateEvent": null,
      "hotKeyCode": null,
      "onHold": false,
      "x": 0,
      "y": 0,
      "width": 0,
      "height": 0,
      "alpha": 100,
      "rotation": "",
      "scaleX": "",
      "scaleY": "",
      "autoSize": "left",            //
      "align": "left",               // выравнивание везде лево/вверх, т.к. поле текстовое и мы не арабы :))
      "valign": "top",               //
      "antiAliasType": "advanced",
      "bgColor": null,
      "borderColor": null,
      "shadow": {},                   // в отсутствие значений тень не отрисовывается
      "currentFieldDefaultStyle": {}, // тут уже есть наследование, поэтому оставил пусто
      "format": ""
    },

Edited by Kapany3uk

Share this post


Link to post

Short link
Share on other sites
упд в идеале дефолтные параметры должны быть такими, что если юзвер включит поле: "enabled": true, и впишет в "format" хоть что-то, то это "что-то" должно отобразиться в левом верхнем углу экрана (код поля в две строки)

 

Я доделаю дефолты для всего, кроме "системных" параметров:

"enabled": 

"updateEvent": 

"hotKeyCode": 

"onHold": 

 

Строки

"shadow": {}

"currentFieldDefaultStyle": { },

"format": ""

 тоже скорее всего должны быть

 

Может, уменьшится и этот список, посмотрю

Edited by wotunion

Share this post


Link to post

Short link
Share on other sites
доделаю дефолты для всего

ИМХО 

@wotunion, предлагаю дефолтные параметры:

'...'

    "default": {
      "enabled": false,
      "updateEvent": null,
      "hotKeyCode": null,
      "onHold": false,
      "x": 0,
      "y": 0,
      "width": 0,
      "height": 0,
      "alpha": 100,
      "rotation": "",
      "scaleX": "",
      "scaleY": "",
      "autoSize": "left",            //
      "align": "left",               // выравнивание везде лево/вверх, т.к. поле текстовое и мы не арабы :))
      "valign": "top",               //
      "antiAliasType": "advanced",
      "bgColor": null,
      "borderColor": null,
      "shadow": {},                   // в отсутствие значений тень не отрисовывается
      "currentFieldDefaultStyle": {}, // тут уже есть наследование, поэтому оставил пусто
      "format": ""
    },

Edited by Kapany3uk

Share this post


Link to post

Short link
Share on other sites

уже есть:

"antiAliasType"

"shadow"

"currentFieldDefaultStyle"

"autoSize": "left", но не left, а none

 

Дефолты для "shadow":  и "currentFieldDefaultStyle" прописаны в шапке battleLabelsTemplates.xc


"shadow": { "distance": 0, "angle": 0, "color": "0x000000", "alpha": 75, "blur": 2, "strength": 1 }
"currentFieldDefaultStyle": { "name": "$FieldFont", "color": "0xFFFFFF", "size": 12, "align": "left", "bold": false, "italic": false, "underline": false, "display": "block", "leading": 0, "marginLeft": 0, "marginRight": 0 }
Edited by wotunion

Share this post


Link to post

Short link
Share on other sites

"autoSize": "left", но не left, а none

имхо: дефолты должны быть такие, чтобы (как уже писал выше) при полном отсутствии всего, кроме "enabled": true, и "format": "Text" уже был вывод этого "Text" на экран... для этого "autoSize" не должен быть none...

Edited by Kapany3uk

Share this post


Link to post

Short link
Share on other sites
Тогда "autoSize" не должен none...

 

Логично, но только чтобы народ не путался...

 

 

в отсутствие значений тень не отрисовывается

 

Без дефолтной тени текст не очень удобочитаемым будет, что повлечет обязательное заполнение "shadow" плюс такие же дефолты в экстраполях вроде

Edited by wotunion

Share this post


Link to post

Short link
Share on other sites

 

 

Логично, но только чтобы народ не путался...
Вангую, что кроме присутствующих и @goodman, никто пока не заморачивался доп.полями, кроме шанса на победу...

 

Без дефолтной тени текст не очень удобочитаемым будет, что повлечет обязательное заполнение "shadow" плюс такие же дефолты в экстраполях вроде
Индифферентно..., написал потому, что вроде тень сажает производительность, а ее отсутствие - нет (так когда-то писали разрабы) 

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...