Login mit addchild

Super_Günther

Grünschnabel
Hallo,
ich benutzte Flashdevelop 3.1.1 und möchte gerne ein Login erstellen da es dort keine Visuelle bzw. Grafikoberfläche gibt versuchte ich es bereits mit der addchild funktion
Code:
public function addChild (child:DisplayObject) : DisplayObject;

hier der code der Main.as:
Code:
package 
{
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.events.Event;
	/**
	 * ...
	 * @author 
	 */
	public class Main extends Sprite 
	{
		
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
		
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
						addChild(LoginScreen);
				}
		
			

		}
		
		
	}

nur leider funktioniert es nicht so wie ich es mir erhofft habe, hoffe jemand kann helfen.

Gruß Günther
 
Du weißt was du da tust oder?

Mit addChild fügst du ein instanziertes DisplayObject der DisplayList hinzu.
In deinem Skipt ist nirgends eine Instanz von der LoginScreen Klasse.

PHP:
package 
{
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.events.Event;
	/**
	 * ...
	 * @author 
	 */
	public class Main extends Sprite 
	{
		
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
		
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			
			var myLoginScreen:LoginScreen = new LoginScreen();
			addChild(myLoginScreen);
				}
		
			

		}
		
		
	}
 
bei mir kommt folgende fehler meldung:
Code:
col: 22 Error: Implicit coercion of a value of type LoginScreen to an unrelated type flash.display:DisplayObject.


addChild(myLoginScreen); färbt Flashdevelop ein
 
Die Fehlermeldung sagt das deine Klasse LoginScreen von DisplayObject erben muß (Sprite, MovieClip) . Erst dann kannst du die instanz der DisplayList hinzufügen.
 
danke für die Antwort, aber was bedeutet das genau? bin erst seit kurzen zu Flash übergegangen
muss ich nun in der LoginScreen.as eine neue Deklation machen mit MovieClip?
 
Mit dem schlüsselwort extends erbt deine Klasse von einer anderen Klasse

LoginScreen bsp:
PHP:
package 
{
   
   //imports 
   
    public class LoginScreen extends Sprite 
    {
		
		//....
	 
     }
        
        
}
 
okay super, nun kommt wenigstens keine Fehlermeldung mehr

hier der code der LoginScreen.as
PHP:
package  
{
	import flash.display.Sprite;
	import flash.text.TextField;

	public class LoginScreen extends Sprite 
	{
		
		public function LoginScreen() 
		{
		 var HelloWorld:TextField = new TextField();                  
                        HelloWorld.text = "hello world";


		}
		
	}

}

Normal sollte wenn nun der code zu einer Test SWF kompiliert wurde ein hello world kommen.
aber die Stage is leer
 
Dein Textfeld existiert zwar als instanz , aber du siehst nichts weil es nicht der DisplayList hinzugefügt wurde ;)
Die DisplayList behinhaltet alle sichtbaren elemente in deinem Film, grob gesagt.

->
PHP:
package  
{
    import flash.display.Sprite;
    import flash.text.TextField;

    public class LoginScreen extends Sprite 
    {
        
        public function LoginScreen() 
        {
         var HelloWorld:TextField = new TextField();                  
				HelloWorld.text = "hello world";
				addChild(HelloWorld)

        }
        
    }

}
 
kann ich auch per _root. funktion in der LoginScreen.as Textfields erstellen?

z.B.
PHP:
_root.createTextField("wert1", 1, 100, 10, 100, 20);
 
_root gibt es in AS3 nicht, es heißt jetzt root, außerdem sollte man root nicht mehr benutzen schon gar nicht wenn man objektorientiert programmiert.
 

Neue Beiträge

Zurück