resueltos inner español ejercicios ejemplos codigo clases flex avm2

flex - inner - codigo de clases en c++



Subclasificación de una clase privada(soporte) en AVM2 (3)

No soy un experto con archivos ABC, pero no creo que esto sea posible en el AVM2. Hice varias pruebas hace un tiempo con AS3 Eval lib y todas fallaron.

En relación con la burla dinámica, he archivado un problema en la base de datos de Adobe, solicitando un mecanismo de proxy dinámico: http://bugs.adobe.com/jira/browse/ASC-3136

Estoy desarrollando un marco de simulación dinámico para Flex / AS3 y tengo problemas con los tipos privados / de soporte (es decir, aquellos declarados fuera del paquete {} en un archivo de clase).

En mi "archivo" ABC, declaro la instancia con el indicador de clase PROTECTED_NAMESPACE y con una multinacional PRIVATE_NS. También he experimentado con darle el mismo espacio de nombres que la clase que está subclasificando (por ejemplo, PRIVATE_NS ("ContainerClass.as $ 123")).

No importa lo que haga, siempre obtengo el siguiente error después de loadBytes:

VerifyError: Error # 1014: Class ContainerClass.as $ 123 :: PrivateClass no se pudo encontrar.

He experimentado con la carga del bytecode generado en el mismo ApplicationDomain como clase privada (utilizo un dominio secundario por defecto). Incluso traté de registrar un alias de clase antes de la carga (aunque eso fue un poco exagerado).

¿Me estoy olvidando de algo o es simplemente una restricción de la AVM?

Tenga en cuenta que soy plenamente consciente de que esto es ilegal en ActionScript 3.0, estoy buscando si esto es realmente posible en el AVM.

Editar: Para aquellos interesados ​​en el trabajo hasta ahora, el proyecto es asmock y está en sourceforge.


No estoy seguro de lo que quiere decir con PRIVATE_NS ("ContainerClass.as $ 123"). Mi lectura de avm2overview.pdf 4.4.1 es que los espacios de nombres privados no tienen permitido tener un nombre, por lo tanto, el "<class name> $ < número> "espacio de nombres en la salida de depuración se genera para su conveniencia. Asumo que eso significaría que tendrías que hackear tu abc en la misma etiqueta abc en el archivo fuente swf para acceder al índice constante del espacio de nombres (¡y eso me suena demasiado duro!)

No he logrado generar un swf de carga, así que tómalo con un grano de sal.


Después de volver a ver este problema en serio, definitivamente puedo responder esta pregunta: las clases privadas solo pueden referenciarse desde el LoaderContext que las cargó

Pude agregar soporte para interfaces privadas al reproducir la interfaz en el ''archivo'' ABC cargado, pero no puede ser forzado / devuelto a la interfaz privada original.

Esto sigue siendo útil para mis requisitos, ya que una interfaz privada se puede usar para combinar múltiples interfaces.