Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 31-05-2007, 18:06   #1 (permalink)
JMB
Neuer User
 
Registriert seit: Apr 2007
Beiträge: 59
Klasse schreiben/ausführen

Hi,

ich beschäftige mich grad mit Klassen, komm aber nicht wirklich damit klar. Hier mein erster Versuch ne Klasse zu schreiben:
PHP-Code:
package {
    
import flash.display.*;
    public class 
Rechteck extends MovieClip {
        public function 
Rechteck() {
            var 
iname:MovieClip = new MovieClip();
            
iname.graphics.beginFill(0xFF0000);
            
iname.graphics.drawRect(50,50,100,50);
            
iname.graphics.endFill();
            
this.addChild(iname);
        }
    }

Der Dateiname ist Rechteck.as. Das hab ich auch als Dokumentklasse in einer anderen FLA angegeben, diese liegt im gleichen Ordner wie die Klasse. Wenn ich die FLA teste, seh ich kein Rechteck.
Was mach ich da falsch?
JMB ist offline   Mit Zitat antworten
Alt 31-05-2007, 19:32   #2 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Du mußt dein Rechteck natürlich noch auf der Bühne adden.
PHP-Code:
var rec:Rechteck  = new Rechteck ();
addChildrec );
// oder 
addChild( new Rechteck ); 
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::
psyk ist offline   Mit Zitat antworten
Alt 31-05-2007, 19:36   #3 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
also ich sehe das rote rechteck, und du mußt es wenn du es in der fla als dokumentklasse angibst nicht extra auf die bühne bringen!
__________________
[mooseMash]
mooseMash ist offline   Mit Zitat antworten
Alt 31-05-2007, 19:49   #4 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Ich sehe nichts, wenn ich nur diese Ziele angebe.
PHP-Code:
var rec:Rechteck = new Rechteck (); 
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::
psyk ist offline   Mit Zitat antworten
Alt 31-05-2007, 19:53   #5 (permalink)
JMB
Neuer User
 
Registriert seit: Apr 2007
Beiträge: 59
Zitat:
Zitat von mooseMash Beitrag anzeigen
also ich sehe das rote rechteck, und du mußt es wenn du es in der fla als dokumentklasse angibst nicht extra auf die bühne bringen!
das dachte ich auch. Funktioniert jetzt auch. Dachte, ich muss da "Rechteck.as" reinschreiben, wenn ich nur "Rechteck" reinschreib, funktionierts.

@psyk: Kann ich mit der Methode dann soviele Klassen in meiner FLA verwenden wie ich will? Für was gibts dann eigentlich das Feld mit der Dokumentklasse?

Danke, für eure Hilfe, funktioniert beides^^
JMB ist offline   Mit Zitat antworten
Alt 31-05-2007, 19:57   #6 (permalink)
JMB
Neuer User
 
Registriert seit: Apr 2007
Beiträge: 59
Zitat:
Zitat von psyk Beitrag anzeigen
Ich sehe nichts, wenn ich nur diese Ziele angebe.
PHP-Code:
var rec:Rechteck = new Rechteck (); 
Das komische Document-Class-Feld added vllt automatisch den Inhalt der Klasse an den Container?
JMB ist offline   Mit Zitat antworten
Alt 31-05-2007, 20:01   #7 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Bin jetzt nicht so mit Flash 9 vertraut da ich mit Flex arbeite, aber
die Dokumentklasse ist deine Initialisierungsklasse aus der du deine
gesamte Anwendung steuerst.
D.h. in dieser Klasse meldest du deine Klassen an, die du für deine
Application benötigst.
Dadurch trennst man die Gestaltung von der Programmierung.


Edit:
Wenn du die Klasse als Dokumentklasse anmeldest gehts natürlich auch.
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::

Geändert von psyk (31-05-2007 um 20:03 Uhr)
psyk ist offline   Mit Zitat antworten
Alt 31-05-2007, 20:11   #8 (permalink)
JMB
Neuer User
 
Registriert seit: Apr 2007
Beiträge: 59
also hab ich das schon richtig verstanden, dass man ne "Hauptklasse" hat, und dort dann alle andren Klassen reinpackt.
Aber wieso die Arbeit machen, wenn es auch ohne geht? Ich hab jetzt, wie du gesagt hast, einfach mit new Rechteck(); die Klasse ausgelöst, ohne irgendwas in das Documentclass-Feld zu schreiben. Funktioniert einwandfrei.
JMB ist offline   Mit Zitat antworten
Alt 01-06-2007, 00:34   #9 (permalink)
~~~~~~~~~~~~
 
Benutzerbild von _geo_
 
Registriert seit: May 2002
Ort: AUSTRIA (OÖ)
Beiträge: 3.298
@JMB:
Zusätzlich zu dem was psyk schon gesagt hat ist der Vorteil der DocmentClass noch dass automatisch die stage schon richtig gesetzt ist, ohne dass du sie mit addChild() in die displayList gepusht hast.

lg geo
__________________
--- :P ---

Blog
Bei unerwünschten Nebenwirkungen zerreißen Sie die Packungsbeilage oder erschlagen ihren Arzt oder Apotheker
_geo_ ist offline   Mit Zitat antworten
Alt 01-06-2007, 23:33   #10 (permalink)
infected
 
Benutzerbild von ZuiOpO_x
 
Registriert seit: Feb 2002
Ort: Hamburg
Beiträge: 487
jop, da hab ich mich auch erst gewundert. aber beim includen der document class wird automatisch ne instanz erzeugt und der konstruktor läuft. macht ja auch sinn, da die document klasse ja eher zum initialisieren der inkludierten klassen gedacht ist.
__________________
eyermannlogic
(!)
ZuiOpO_x ist offline   Mit Zitat antworten
Alt 02-06-2007, 09:04   #11 (permalink)
JMB
Neuer User
 
Registriert seit: Apr 2007
Beiträge: 59
hmm, ok. Aber ich verstehs trotzdem nicht. Wenn ich keine DocumentClass angeb, dann muss ich hat immer addChild() machen. Das ist aber immer noch weniger Arbeti, als wenn ich noch eine DocumentClass schreiben muss (weiß auch gar nciht wie), oder teusche ich mich da?
JMB ist offline   Mit Zitat antworten
Alt 02-06-2007, 10:04   #12 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Das verstehst du falsch. Den gesamten Code den du sonst in den
ersten Frame geschrieben hast wird in die Dokumenten-Klasse
ausgelagert, so das du nichts mehr in deine Fla-Datei schreiben mußt.
Sie wird halt als Steuerungs-Klasse für deine Anwendung genutzt.
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::
psyk ist offline   Mit Zitat antworten
Alt 02-06-2007, 11:22   #13 (permalink)
JMB
Neuer User
 
Registriert seit: Apr 2007
Beiträge: 59
achso, jetzt versteh ich. Jetzt wirds plötzlich logisch für mich
Danke!
Aber wie ist die DocumentClass aufgebaut? Gibts da irgendwo n Tutorial oder eine Vorlage oder so?
JMB ist offline   Mit Zitat antworten
Alt 02-06-2007, 13:42   #14 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Beispielsweise so.
PHP-Code:
package
{
   
import flash.display.Sprite;
   public class 
Main extends Sprite
   
{
      public function 
Main()
      {
          
init();
      }

      private function 
init() : void
      
{
          
// hier kommt der Rest
      
}
   }

__________________
:: Warum einfach, wenn's auch kompliziert geht! ::
psyk 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



Alle Zeitangaben in WEZ +1. Es ist jetzt 11:51 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele