Domanda

Questo è un rompicapo.

Rilevante Ambiente:. Flex app, prezzemolo in esecuzione, che viene costruito da formica

class Problema:

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() {}

Altrove, in una classe separata (che viene definito in un contesto Prezzemolo):

package com.foo.bar {
    public class ProblemClassBuilder {
        [Factory]
        public function getProblem():ProblemClass {
            return ProblemClass.build();
        }
      }
}

Ecco il kicker: Quando compilo questo da un compito formica con il debug = "true", funziona benissimo. Quando compilo con debug = "false", il prezzemolo tiri un errore durante la costruzione del contesto:

  

Errore durante l'applicazione [oggetto   FactoryMethodDecorator]: Errore # 1065:   Variabile Enforcer non è definito.

Non ci sono altre modifiche al codice, ad eccezione girando debug on / off nel compito formica mxmlc.

Qualcuno ha visto problemi simili con le classi interne e formica di debug di compilazione modalità?

Sono stato in grado di risolvere il problema, (togliendo la classe interna), ma non capisco il motivo per cui non ha funzionato, in primo luogo.

È stato utile?

Soluzione

suona come un bug nel compilatore ... mi piacerebbe file, a bugs.adobe.com

Altri suggerimenti

È consentito soltanto una definizione di classe per ActionScript file, altrimenti è necessario utilizzare la parola chiave internal quindi dovrebbe essere private internal class Enforcer()

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top