سؤال

هذا هو الألغاز.

البيئة ذات الصلة: تطبيق 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()

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