Comunidad de diseño web y desarrollo en internet online

Menu 3D

Citar            
MensajeEscrito el 09 Feb 2011 02:39 am
Hola, estoy tratando de hacer un menu 3d en flex y encontré lo siguiente:
http://www.cristalab.com/tutoriales/como-crear-un-menu-dinamico-3d-con-actionscript-3-c68761l/

En el mxml principal puse lo siguiente:
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
horizontalAlign="center"
paddingLeft="0"
paddingTop="0"
paddingBottom="0"
paddingRight="0"
width="1024" height="768">
<mx:Script>

<![CDATA[
import Classes.Ease3DMenu;
var elementos:Array = new Array (new Elemento1(), new Elemento2());
var menu:Ease3DMenu = new Ease3DMenu(elementos);
addChild(menu);
]]>
</mx:Script>
</mx:Application>

E hice una clase Ease3DMenu con el contenido que está en el link.
Mi problema es que me aparecen los siguientes errores:

1046: No se encontró el tipo o no es una constante en tiempo de compilación:
1120: Acceso a una propiedad menu no definida.
1180: Llamada a un método addChild posiblemente no definido.
1180: Llamada a un método Ease3DMenu posiblemente no definido.
1180: Llamada a un método Elemento1 posiblemente no definido.
1180: Llamada a un método Elemento1 posiblemente no definido.
1180: Llamada a un método Elemento2 posiblemente no definido.
1180: Llamada a un método Elemento2 posiblemente no definido.

Es como si no hubiera hecho el import de Ease3DMenu.
Aclaro que estoy empezando con flex. Desde ya cualquier ayuda es bienvenida.Gracias!

Por marb21

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Feb 2011 07:21 am
BuenAS:

Lo primero, tiene aspecto de que no hayas configurado el paquete en la definición de la clase Ease3DMenu. Tienes que estar guardandola en la carpeta Classes y en la primera línea debe aparecer algo así

Código ActionScript :

package   Classes
{
.....


Y si ya quieres dejarlo fino, no llames a los packages con mayúsculas (y las carpetas asociadas) ;)

Por otro lado, la clase extiende de Sprite, y un sprite no se puede añadir directamente a una aplicación Flex. Crea primero un UIComponent y haz el addChild a dicho UIComponent.

Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 09 Feb 2011 07:27 am
...y ¿tienes en alguna library .swc los símbolos Elemento1, Elemento2? Además cuidado si más que símbolos son componentes de Flex, ya que un componente de Flex (un Button, por ejemplo)no se puede añadir a un Sprite.

Quizá sea más interesante que te crees un proyecto ActionScript y cuando funcione el menú, crees este proyecto Flex. Como decía, los componentes Flex 3 son bastante incompatibles con los símbolos de Flash.

Flex 4 ha añadido algo de compatibilidad (tiene componentes que se comportan como los Sprites/MovieClip Flash.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 09 Feb 2011 03:54 pm
Muchas gracias por las respuestas. El tema de fondo es que no estoy pudiendo llamar a un metodo de otra clase desde el mxml inicial. Sé que es básico pero bueno... Les explico con una clase que debería devolver resultado:

-------------------------------------------------------------------------------------------
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
name="Mariner"
width="1024" height="768">
<mx:Script>
<![CDATA[
import Classes.*
import mx.controls.Alert;
Alert.show(prueba("hola")); --->> esto me da: "Llamada a un método prueba posiblemente no definido."

]]>
</mx:Script>
</mx:Application>
--------------------------------------------------------------------

package Classes
{

import Classes.*
public class menu
{
public function prueba(cadena:String):String

{
cadena="resultado";
return cadena;
}
}
}
-----------------------------------------------------------------

Por marb21

1 de clabLevel



 

firefox

 

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