Как сделать скин Alert box в flex 4 - PullRequest
1 голос
/ 28 декабря 2011

Как оформить окно оповещения в flex 4? Меня не интересует настройка окна оповещения через css, как мне создать скин?

Например, для TextInput я бы написал в css:

s|TextInput
{
    skinClass: ClassReference("skins.TextInputSkin");
}

и в TextInputSkin.mxml

<s:SparkSkin xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"
    xmlns:fb="http://ns.adobe.com/flashbuilder/2009" 
    alpha.disabledStates="0.5" blendMode="normal">

    <fx:Metadata>
    <![CDATA[ 
        /** 
         * @copy spark.skins.spark.ApplicationSkin#hostComponent
         */
        [HostComponent("spark.components.TextInput")]  
        ...etc..

И получим TextInput глобально измененным.
Как мне сделать что-то похожее для Alert? Я не могу понять, что такое компонент узла для оповещения.

Ответы [ 2 ]

2 голосов
/ 23 октября 2012

Компонент MX Alert - это, так сказать, не единственный элемент управления. В основном это комбинация панели, метки и кнопок. Попробуйте сделать это, оформить скин / стиль стандартным компонентом MX Panel и применить его глобально к вашему приложению. Вы заметите, что когда вы пытаетесь вызвать компонент оповещения, на него также влияют, поскольку он принимает форму только что примененного вами стиля. Вы можете создать скин Flex 4, а затем сделать его настраиваемым всплывающим компонентом для достижения того же эффекта.

1 голос
/ 29 декабря 2011

Элемент управления mx.controls.Alert является компонентом MX, и по этой причине не использует ту же архитектуру скинов, которую используют компоненты Spark, что и используется в вашем примере.Честно говоря, хотя Adobe по-прежнему называет это «скиннингом» (ср., Skinning MX Components ), похоже, он не очень похож на процесс Spark.

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

Другая важная информация, которую выВозможно, вам нужно знать, что Alert является производным от класса mx.containers.Panel .Таким образом, в какой степени вы можете «обшить» панель, это та степень, в которой вы в конечном итоге сможете «закинуть» предупреждение.

...