Flex / Parsley - Quirk الفئة الداخلية مع وضع التجميع
-
01-10-2019 - |
سؤال
هذا هو الألغاز.
البيئة ذات الصلة: تطبيق Flex ، تشغيل البقدونس ، والذي يتم بناؤه بواسطة Ant.
فئة المشكلة:
package com.foo.bar {
public class ProblemClass {
// constructor
public ProblemClass(enforcer:Enforcer) {}
public static function build():ProblemClass {
// Do some setup
return new ProblemClass(new Enforcer())
}
}
// internal private class
class Enforcer() {}
في مكان آخر ، في فصل منفصل (يتم تعريفه في سياق البقدونس):
package com.foo.bar {
public class ProblemClassBuilder {
[Factory]
public function getProblem():ProblemClass {
return ProblemClass.build();
}
}
}
إليك كيكر: عندما أقوم بتجميع هذا من مهمة ANT مع Debug = "True" ، فإنه يعمل بشكل جيد. عندما أقوم بتجميعه باستخدام Debug = "False" ، يرمي Parsle خطأ أثناء بناء السياق:
خطأ في تطبيق [Object FactoryMethodDecorator]: خطأ #1065: لم يتم تعريف المنفذ المتغير.
لا توجد تغييرات رمز أخرى ، باستثناء تشغيل Debug / OFF في مهمة ANT MXMLC.
هل شاهد أي شخص مشاكل مماثلة مع الطبقات الداخلية وأوضاع تصحيح النمل؟
لقد تمكنت من حل المشكلة ، (عن طريق إزالة الفصل الداخلي) ، لكن لا أفهم لماذا لم تنجح في المقام الأول.
المحلول
يبدو وكأنه خطأ في المترجم ... سأقوم بتقديمه على bugs.adobe.com
نصائح أخرى
لا يُسمح لك سوى تعريف فئة واحد لكل ملف ActionScript ، وإلا يجب عليك استخدام internal
الكلمة الرئيسية لذلك يجب أن تكون private internal class Enforcer()