سؤال

هل هناك أي طريقة لإنشاء قيمة CSS مخصصة للمكون ومتاحة لفئة الجلد التي يستخدمها المكون؟ على سبيل المثال، إذا حددت هذا في ملف CSS:

s|Panel{
  skinClass: ClassReference("PanelSkin");
  myCustomValue: #CCCCFF;
}

هل هناك طريقة لجعل myCustomValue متاح في PanelSkin ?

هل كانت مفيدة؟

المحلول

حتى من دون [نمط] البيانات الوصفية على فئة المكونات، يبدو أنه يمكنك تعيين خصائص CSS وسوف تكون متاحة في الجلد. كاختبار، قمت بإنشاء جلد مخصص وتعلق عليه ByingnAbomomponent، ثم قم بتعيين خاصية "لون خاص" عبر CSS. في الجلد، أنا ملزم ب "{fetstyle (formalcolor") "، واسترجع قيمة العقار التي قمت بتعيينها.

كل ما قد يضحي به عن طريق حذف البيانات الوصفية هو التلقائي على CSS.

رمز الاختبار الخاص بي:

skintest.mxml:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
           xmlns:s="library://ns.adobe.com/flex/spark" 
           xmlns:mx="library://ns.adobe.com/flex/halo" minWidth="1024" minHeight="768">
<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>

<fx:Style>
    @namespace s "library://ns.adobe.com/flex/spark";
    @namespace mx "library://ns.adobe.com/flex/halo";

    s|SkinnableComponent {
        skin-class: ClassReference("skins.CustomSkin");
        special-color: blue;
    }
</fx:Style>

<s:SkinnableComponent width="300" height="300"/>
</s:Application>

Gustlykin.mxml:

<?xml version="1.0" encoding="utf-8"?>
<s:SparkSkin xmlns:fx="http://ns.adobe.com/mxml/2009" 
     xmlns:s="library://ns.adobe.com/flex/spark" 
     xmlns:mx="library://ns.adobe.com/flex/halo" width="400" height="300">
<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>

<s:Rect left="0" top="0" right="0" bottom="0">
    <s:fill>
        <s:SolidColor color="{getStyle('specialColor')}"/>
    </s:fill>
</s:Rect>
</s:SparkSkin>

نصائح أخرى

يجب عليك استخدام البيانات الوصفية [Style]، وهنا معلومات أخرى حول هذا: نمط البيانات الوصفية

يجب عليك تحديد فئة المكونات المضيفة في ملف جلد MXML. [hostcomponent ("Your.comOonent.Class")

بعد ذلك، ستتمكن من الحصول على أي نمط محدد في ملف CSS باستخدام HostComponent.getStyle ("mycustomvalue")

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top