Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-12-2011, 15:16   #1 (permalink)
Neuer User
 
Registriert seit: Feb 2011
Beiträge: 19
SyntaxFehler: Leftbrace vor leftparen erforderlich

Hallo Leute,
nach langer Zeit hab ich es endlich Zeit mir AS3 beizubringen.
Ich habe mir jetzt ein Buch gekauft und bin schon ein bisschen am rumspielen
mit ein paar Funktionen und Klassen.
In letzter Zeit habe ich viel C# OOP programmiert, meine Kentnisse würde ich als mittelmäßig bezeichnen.
Ich habe über die Suchfunktion leider keinen ähnlichen Fehler gefunden deshalb wollte ich mal fragen wo mein Fehler liegt, da der ja ziemlich banal zu sein scheint.....

zur kurzen Erklärung:

ich will sobald das Programm startet 2 Instanzen der Klasse Player erzeugen, hierbei rufe ich den Konstruktor auf, welcher 2 Übergabeparameter annimmt.

Hier der Code der Playerklasse:
Code:
import flash.display.*;
import flash.text.TextField; 

 class Player() extends Sprite{
	var playerCount= 0;
	
	public function Player(player_name: String, player_position: String){
		
	var CreatedPlayer: Shape = new Shape();
	this.name= player_name;
	
	if(player_position == "right"){
		this.x=  400;
		this.y= 200,
	}
	else if (player_position == "right")
	{
			this.x=  250;
			this.y= 200,
	}
		playerCount +=1; 
	}
}
Und hier der Code meiner der ausgeführt werden soll beim Eintritt in
das erste Frame:

Code:
import flash.display.*;
import flash.text.TextField;

var running: Boolean = false;

addEventListener(Event.ENTER_FRAME, CheckProgramrunning)

function CheckProgramrunning(e:Event): void{
	
	if( running == false){
	var player_1= new Player(ICH, rechts);
	var player_2= new Player(DU, links);
	addChild(player_1);
	addChild(player_2);
	running= true;
	}
}

nun habe ich folgendes Problem:

Ich benutze Adobe Flash Professional CS5 und bekomme beim kompilieren
folgende Fehler:

Szene 1, Ebene 'Player Class', Bild 1, Zeile 15 1084: Syntaxfehler: identifier vor rightbrace erforderlich.
Szene 1, Ebene 'Player Class', Bild 1, Zeile 20 1084: Syntaxfehler: identifier vor rightbrace erforderlich.


Des weiteren verstehe ich nicht wieso ich meinen Klassen keine packages zuweisen kann, ich bin gewohnt( c# , Microsoft Visual Studio), dass jede Klasse einen namespace benötigt. Das Buch das ich zum lernen verwende (Essential Actionscript 3.0) benutzt hierfür packages, welche wenn ich das richtig verstanden habe den ganzen Programminhalt in sich kapseln.
Vielleicht kennt sich einer mit AdobeFlash CS5 aus und kann mir diese Fragen beantworten.
Komm mir ziemlich hilflos vor in der neuen Entwicklungsumgebung und das Buch bezieht sich leider nicht direkt auf AdobeFlash CS5.

Ich hoffe meine Fragen sind verständlich und ohne allzu großen Aufwand zu beantworten, mir würde vielleicht auch schon ein Anstoß in die richtige richtung helfen .

Vielen Dank schonmal im vorraus
Spackster ist offline   Mit Zitat antworten
Alt 06-12-2011, 15:24   #2 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
hi,
nur mal auf die schnelle:
PHP-Code:
var player_1= new Player(ICHrechts);
    var 
player_2= new Player(DUlinks); 
Player will zwei strings übergeben bekommen... dann sollte das auch so aussehen:
PHP-Code:
var player_1= new Player("ICH""rechts");
    var 
player_2= new Player("DU""links"); 
und das hier:
PHP-Code:
 class Player() extends Sprite
sollte eher so aussehen:
PHP-Code:
public class Player extends Sprite
ich hoffe das wars schon...

cheers,
sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar ist offline   Mit Zitat antworten
Alt 06-12-2011, 15:27   #3 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Ich hab den Code Deiner Klasse mal korrigiert und kommentiert:
ActionScript:
  1. package { // Ein Paket muss immer am Anfang einer AS3-Klasse stehn
  2.    
  3.     // Hier nur die Klassen importieren die Du auch brauchst. * sollte vermieden werden
  4.     import flash.display.Sprite;
  5.     import flash.display.Shape;
  6.  
  7.     public class Player extends Sprite { // Hinter die Deklaration gehören keine ()
  8.        
  9.         private var players:Array = []; // Die Länge dieses Arrays ist dann automatisch die ANzahl der Player   
  10.        
  11.         ////
  12.        
  13.         public function Player(playerName: String, playerPosition: String){
  14.            
  15.             var createdPlayer:Shape = new Shape();
  16.            
  17.             createdPlayer.name = playerName;
  18.            
  19.             if(playerPosition == "right"){
  20.                 createdPlayer.x = 400;
  21.                 createdPlayer.y = 200;
  22.             } else if (player_position == "left") { // Hier meinstest Du sicher nicht nochmal "right"?!
  23.                 createdPlayer.x = 250;
  24.                 createdPlayer.y = 200;
  25.             }
  26.            
  27.             players.push(createdPlayer);
  28.             addChild(createdPlayer); // Du musst den Player auch noch der Bühne hinzufügen, sonst siehst Du Ihn nicht
  29.         }
  30.        
  31.         ////
  32.        
  33.     }
  34. }
P.S.: Da es hier offensichtlich um AS3 geht, werd ich das Thema mal in den entsprechenden Bereich verschieben...
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!

Geändert von Martin Kraft (06-12-2011 um 17:36 Uhr)
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 06-12-2011, 15:59   #4 (permalink)
Neuer User
 
Registriert seit: Feb 2011
Beiträge: 19
Danke ihr beiden
Also den Fehler in der Klassendeklaration hatte ich inzwischen auch schon gefunden.
Danke für die Mühe die ihr euch gemacht habt .
Martin Kraft, ich hab deine Klasse jetzt benutzt und bekomm das Problem das ich oben schon beschrieben hatte:

Szene 1, Ebene 'Player Class', Bild 1, Zeile 1 1037: Pakete dürfen nicht verschachtelt sein.

Das meinte ich in meinem ersten Post damit, dass ich keine packages zuweisen kann bzw Klassen nicht richtig erstellen kann....

Ich glaub ich habe auch noch einen grundlegenden Fehler im Code-Bereich, wo sollte ich denn meinen Code hinschreiben ? Bzw gibt es eine Quelle die einen guten Einsteig in das Programmieren mit Adobe Flash CS5 gibt ohne dabei auf jede einzelne Fuktion einzugehen ?

Ich verfahre momentan wie folgt:

Ich erstelle in der Zeitleiste einen neuen Layer und benutze dessen Aktionen-Bereich um dort meinen Code hineinzuschreiben.
Momentan habe ich für jede Klasse einen neuen Layer, funktioniert das ? bzw ist das sinnvoll ?

Danke für eure schnellen und hilfreichen Antworten,
Grüße
Spackster ist offline   Mit Zitat antworten
Alt 06-12-2011, 16:29   #5 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
Klassen gehören in eine externe Datei, Syntax wie folgt:
PHP-Code:
package flash.display {
    public class 
MovieClip {
    }

gehört in die Datei:
Code:
MeinOrdner/flash/display/MovieClip.as  //Ordnerstruktur anhand des packages
MeinOrdner/datei.fla  //hauptdatei
wenn du mit C# gearbeitet hast, solltest du dich doch gut in dem Event-system in AS3 einfinden können, und dich langsam aber sicher von der Zeitleiste komplett verabschieden; zumindest was Code angeht
__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist offline   Mit Zitat antworten
Alt 06-12-2011, 17:20   #6 (permalink)
Neuer User
 
Registriert seit: Feb 2011
Beiträge: 19
Wow vielen Dank ,
das werd ich dann später mal umsetzen,
ich hab über die Ordnerstruktur bereits etwas gelesen in meinem AS3 Buch,
dachte allerdings dass Adobe flash CS5 die Ordnerstruktur im Hintergrund automatisch für mich erstellt wenn ich zum Beispiel eine neue Klasse erzeuge.
Bin doch noch sehr Microsoft's Visual Studio gewohnt ..... ich glaub das hab ich mir ein bisschen zu einfach gedacht .
Vielen Dank nochmal für alle eure Mühen und die schnellen Antworten .

Und frohe Weihnachten falls ihr bis dahin nicht nochmal über nen Post von mir stolpert ,

Grüße
Spackster ist offline   Mit Zitat antworten
Alt 06-12-2011, 17:38   #7 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
Zitat:
ich glaub das hab ich mir ein bisschen zu einfach gedacht
nicht umbedingt, schau dir mal FlashDevelop an. Das macht die Programmierung wieder viel komfortabler
__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
1086: Syntaxfehler: Semikolon vor leftbracket erforderlich. Asta ActionScript 3 5 15-04-2010 13:08
Line 7: Syntax error: expecting identifier before leftbrace. princ1p ActionScript 3 7 08-02-2010 08:03
1084: Syntaxfehler: identifier vor doublecolon erforderlich - Was bedeutet das?! Mirco_XP ActionScript 3 4 06-08-2009 11:27
Syntaxfehler identifier vor class erforderlich deZomer Flex programmieren 1 19-06-2008 16:59
Syntaxfehler oder kein Syntaxfehler... das ist hier die Frage Jazzy4Rock ActionScript 2 4 05-11-2007 13:24


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:47 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele