Comunidad de diseño web y desarrollo en internet online

Insertar MovieClip en proyecto FlashDevelop

Citar            
MensajeEscrito el 20 Feb 2009 11:37 am
Hola,

soy nuevo usando FD, y lo estoy usando para seguir los tutoriales de PaperVision3d que he encontrado en esta página: http://www.marcpelland.com/2009/01/22/guide-to-getting-started-in-papervision-3d/3/ .

Recomiendo esos tutoriales, ya que están muy bien explicados. Sin embargo, me encuentro con un problema al llegar a esta línea en el tercer ejemplo:

Código :

// create a movie material for the sphere from the library
var sphereMaterial:MovieAssetMaterial = new MovieAssetMaterial("sphereMaterial");


Al compilar, FD me dice "[Fault] exception, information=ReferenceError: Error #1065: No se ha definido la variable sphereMaterial.". Leyendo más abajo en el ejemplo, explica que es necesario crear un material en la librería y exportarlo para AS3.

Yo hago lo siguiente:
- Creo un material en Flash y lo convierto en movie clip.
- Hago click con el botón derecho sobre el movie clip en la librería y selecciono Linkage.
- Llamo a la clase sphereMaterial, clase base flash.display.MovieClip .
- Exporto la película marcando la opción de exportar librería.
- Muevo la librería exportada, sphereMaterial.swc a la carpeta del proyecto de FD.
- En FD, click derecho sobre el icono de la librería, "Add To Library".

Pero de nuevo al compilar me da el mismo error.

Adjunto una imagen de mi proyecto en FD por si pudiera servir para aclarar lo expuesto.


Gracias por vuestra atención

Por akhasis

75 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Feb 2009 04:33 pm
No uso FD pero si en el linkage pones como nombre "sphereMaterial" la declaracion de tu variable no seria al revez¿?

Código ActionScript :

//Asi
var MovieAssetMaterial:sphereMaterial=new sphereMaterial(); 
//en lugar de asi
var sphereMaterial:MovieAssetMaterial=new MovieAssetMaterial();


Para que crees una instancia de "sphereMaterial" llamada "MovieAssetMaterial" y sphereMaterial la jala de tu biblioteca y de la otra forma creas una instancia de "MovieAssetMaterial" llamada "sphereMaterial" que no se de donde jale y supongo por eso marca error.
Espero sea eso y que se entienda XD

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Feb 2009 08:43 am
Gracias Angel Roberto pero no ha funcionado.

Por lo que entiendo, MovieAssetMaterial es una clase de PV3D que crea un material para un modelo 3d a partir de un movieclip especificado por su nombre de identificador.

¿Más ideas?

Gracias

Por akhasis

75 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Feb 2009 04:21 pm
Le di una leida al tutorial que mencionas y antes de bajar los archivos y hacer pruebas intenta esto, tienes una clase sphereMaterial en la bilbioteca y la pasas como parametro a MovieAssetMaterial en lugar de pasar directo sphereMaterial crea una instancia algo asi:

Código ActionScript :

//Creas una instancia de sphereMaterial que se llama mc_material
var mc_material:sphereMaterial=new sphereMaterial();

//Creas tu instancia de MovieAssetMaterial...no la llamaremos sphereMaterial como tu la tenias
//para evitar conflictos de nombres de variables y clases XD

var s_Material:MovieAssetMaterial = new MovieAssetMaterial("mc_material");
//mandamos como parametro mc_material, pero no se si sea necesario ponerle comillas(""), hazla prueba
//con y sin ("mc_material"),(mc_material).




Espero esto ya te funcione estoy al pendiente y si no funciona me bajo las clases y hago unas pruebas va??

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Feb 2009 09:40 am
Hola, Angel Roberto.

Probe lo que tu me dijiste y no me funciono, acabe bajandome los archivos de los tutoriales (no me habia dado cuenta de que estaban ahi) y ya lo pude hacer.

El problema era que yo intentaba importar el simbolo desde FD, sin embargo en los archivos del tutorial ejecutan el código escrito en FD directamente desde Flash. Haciéndolo de esta manera, funciona sin problemas, sin embargo, sé que hay formas de insertar el símbolo desde FD, aunque ninguno de los tutoriales que he hecho sobre esto me ha funcionado. No me gusta no llegar a entender completamente las cosas antes de seguir adelante, pero ya le dare otra vuelta a lo de importar desde FD, de momento seguiré con los tutoriales de PV3D.

Gracias de nuevo por tu atención.

Por akhasis

75 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Feb 2009 03:47 pm
No ps gracias de que si no fnciono ami tampoco me gusta quedarme a medias voy hacer unas pruebas a ver como me sale.

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Feb 2009 04:01 pm
Debería refrescar, pero creo que lo estamos liando un poco todo.
Cuando creamos un nuevo material en un fichero .as (digamos en main.as) mediante

Código ActionScript :

var sphereMaterial:MovieAssetMaterial = new MovieAssetMaterial("sphereMaterial");

Se supone dos cosas
1.-Tenemos un .fla con un símbolo en la biblioteca cuyo nombre para exportar es "sphereMaterial"
2.-Ese .fla tiene como "clase de documento" la clase Main (p.e. un ejemplo)
3.-Es en main.as, que define la Clase Main donde usamos la instrucción anterior

Código ActionScript :

package{
   public class Main extends MovieClip{
      var sphereMaterial:MovieAssetMaterial = new MovieAssetMaterial("sphereMaterial");
      public function Main(){
          .....lo que sea.....
      }
}


Así pues, no se trata de "importar nada". Al decirle que la "clase de documento" es Main, en el main.as podemos usar TODOS los símbolos que tuviéramos en la biblioteca de ese .fla. Al igual que podemos hacer un mimc:MiClase=new MiClase(), pe.

Vale, si en lugar de tener un main.as, lo que hacemos es escribir directamente en un frame de la película principal no nos hace falta, pero la idea no es esa. Digamos que como idea "general" la tendencia es que nuestro .fla sea simplemente un "contenedor de librerías".
Por eso, si lo ejecutamos escribiendo el código directamente en un frame la cosa "funciona"

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Feb 2009 12:16 pm
Gracias, creo que con eso ya lo he entendido, en cuanto tenga un rato lo corrijo y te cuento.

Por akhasis

75 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.