سؤال

وبين الحين والآخر أحصل على خطأ عندما أقوم بإعداد الدول في ملف MXML. يقول الخطأ أن أحصل على MX: الدول لا يمكن حلها لتنفيذ مكون

.

وأنا أقرأ، على العنوان التالي، أن هذه المسألة التي تسببها مكونات تمتد - بطريقة أو بأخرى أن يلقي من قدرة المترجم على حل MX: الدول. أنا لا أرى لماذا ينبغي أن يكون هذا هو الحال، ولكن ليس لدي أي إجابة لبلدي. أنا أيضا لا يمكن أن تجعل بالضرورة هذا العمل النهج مع جميع المكونات بمد بلدي.

http://life.neophi.com/danielr/2007/01 /could_not_resolve_to_a_compone.html

والحل جئت مع هو عدم استخدام أي مساحة. لذا، قانون بلدي ثم يبدو مثل هذا:

<states>...</states>

وبدلا من:

<mx:states>...</mx:states>

وجعل هذا الغريب (على الأقل بالنسبة لي) هو حقيقة أن الأطفال للعلامة - - لايوجد هذه المسألة. MX: الدول لا يمكن حلها، ولكن MX التابعة له: الدولة يمكن. وMX: SetProperty - طفل MX: الدولة - تم حل أيضا

ويمكن لأحد أن يفسر هذا، و / أو تقديم أفضل حل لهذه المشكلة من ما جئت به؟

وبالمناسبة، أرى نفس القضية مع MX: التحولات

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

المحلول

إذا كان لديك مكون مخصص، عليك ربما يكون ذلك في مساحة اسم آخر غير <م> MX . كنت على الطريق الصحيح عن طريق إزالة مساحة الاسم، ولكن لم يكن لديك للقيام بذلك. النظر في المثال التالي

<example:MyComponent xmlns:mx="http://www.adobe.com/2006/mxml"
    xmlns:example="com.example.*">
</example:MyComponent>

في هذا الرمز، لدينا مكون مخصص اسمه MyComponent في حزمة com.example. الآن، كيف نضيف الدول مخصص؟ فإنه من السهل!

<example:MyComponent xmlns:mx="http://www.adobe.com/2006/mxml"
    xmlns:example="com.example.*">

    <example:states>
        <mx:State name="CustomState">
        </mx:State>
    </example:states>

</example:MyComponent>

وخصائص عنصر، مثل الدول ، <م> التحولات ، أو حتى العلامة على زر يمكن إنشاء كعناصر الطفل. يجب أن تلك الخصائص استخدام نفس مساحة الاسم ك المثيل المكون. لا يهم أين تأتي العقار من في سلسلة الميراث. حتى لو com.example.MyComponent يمتد mx.containers.Canvas، فإن الملكية الدول استخدام مساحة الاسم XML الذي يعرف MyComponent.

وباختصار، لا أعتقد أن من الدول الممتلكات، <م> MX: الدول لأن <م> MX: بادئة خاصية هو مجرد موروث من المكون. ومع ذلك، فإننا لا يجب أن تستخدم MX: عندما نحدد الدولة الفعلية نفسها لأن هذا هو فئة (وليس الملكية) ويتم تعريف تلك الفئة في مساحة الاسم MX

.

لتذهب خطوة أبعد في التفسير، يمكنك تغيير HTTP: // شبكة الاتصالات العالمية. adobe.com/2006/mxml مساحة الاسم ليكون شيئا آخر غير <م> MX .

<zzz:VBox xmlns:zzz="http://www.adobe.com/2006/mxml">
    <zzz:states>
    </zzz:states>
</zzz:VBox>

في هذا المثال، قمنا بتغيير <م> MX إلى <م> ZZZ . الآن، و<م> الدول الخاصية يجب أن تكون مسبوقة مع ZZZ: بدلا من MX:

نصائح أخرى

<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"
         width="100%" 
         height="100%"
         backgroundColor="#f7f7f7" 
         xmlns:common="com.americanexpress.voice.view.component.common.*">
    <mx:states name="edit">

لماذا هذا الفشل؟ لقد وجدت أيضا أن هذا فشل عندما يكون لدي بمساحات متعددة محددة. إزالة عناوين <mx: هذه المسألة.

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