Sto sviluppando un framework di simulazione dinamica per Flex/AS3 e sto avendo problemi con i tipi di supporto/privati (cioè quelli dichiarati all'esterno del pacchetto {} in un file di classe).Sottoclasse di una classe privata (di supporto) in AVM2
Nel mio "file" ABC, sto dichiarando l'istanza con il flag di classe PROTECTED_NAMESPACE e con un multiname PRIVATE_NS. Ho anche provato a dargli lo stesso spazio dei nomi della classe che sottoclasse (ad esempio PRIVATE_NS ("ContainerClass.as $ 123")).
Non importa quello che faccio, ho sempre arrivare il seguente errore dopo loadBytes:
VerifyError: Error #1014: Class ContainerClass.as$123::PrivateClass could not be found.
Ho sperimentato con il caricamento del bytecode generato nella stessa ApplicationDomain come la classe privata (io uso un dominio figlio di default). Ho perfino provato a registrare un alias di classe prima del caricamento (anche se era un po 'troppo lungo).
Sto dimenticando qualcosa o è semplicemente una restrizione dell'AVM?
Si noti che sono perfettamente consapevole del fatto che ciò non è consentito in ActionScript 3.0, ma cerco se ciò sia effettivamente possibile in AVM.
Edit: Per chi fosse interessato al lavoro finora, il progetto è asmock ed è su sourceforge.
In realtà ho sviluppato un framework proxy dinamico e funziona bene (con classi pacchetto/interfacce). L'unica grande caratteristica eccezionale del framework è la derisione delle classi "private" (dichiarate al di fuori del pacchetto). –
Wow, allora devo davvero verificarlo! Suppongo che tu non l'abbia fatto con le funzionalità standard di AS3? –
In realtà, sto solo usando Loader.loadBytes().Generare un SWF/ABC dinamico in fase di esecuzione è stata la parte più difficile;) –