Pregunta

Aquí está la situación: tengo un shell que carga un .swf externo. Ahora, ese .swf es de 800x600, pero es una pieza de animación, y hay elementos que se extienden fuera del escenario. Cuando cargo el .swf en el shell y llamo a su atributo de ancho, devuelve 1200, porque incluye los elementos que salen del escenario.

Esto no es lo que quiero: idealmente, habría dos propiedades, una para devolver el 'ancho calculado' y otra para devolver el 'ancho predeterminado'. ¿Existen estas propiedades y, de no ser así, cuál es la mejor solución?

¿Fue útil?

Solución

El ancho y la altura del SWF cargado según lo definido por el FLA con el que se creó se pueden encontrar en el objeto Loader en el que ha cargado el SWF.

swfLoader.contentLoaderInfo.width
swfLoader.contentLoaderInfo.height

Esto siempre le mostrará las dimensiones definidas en las propiedades FLA. No hay diferencia si hay imágenes, MovieClips o lo que ha extendido fuera del escenario.

Las propiedades stage.stageWidth y stage.stageHeight siempre devolverán el ancho de la etapa, la etapa siempre es el SWF más alto. En otras palabras, siempre representará las dimensiones de la etapa del shell. Solo hay una etapa en una aplicación Flash.

Otros consejos

Mark probablemente tenga razón en que el cargador de contenido El objeto info contendrá el ancho y la altura correctos. Nunca me he verificado, así que no puedo garantizarlo. Los documentos dicen "nominal" y lo contrastan con "real", por lo que parece razonable.

Hay un par de otras opciones. Puede enmascarar el swf externo. Cree una máscara que sea del tamaño del escenario y coloque todo el contenido debajo de ella. Otra idea es crear un clip de película basado en una forma rectangular, establecer su alfa en 0, colocarlo en x: 0, y: 0 y hacer coincidir su ancho y altura con el escenario. Déle un nombre de instancia y luego, cuando se cargue, use ese valor para el tamaño.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top