Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 08-01-2005, 11:47   #1 (permalink)
Waffe==Verstand
 
Benutzerbild von p-flash
 
Registriert seit: Jul 2004
Ort: Düsseldorf
Beiträge: 724
Namensräume simulieren. Warum?

Hi,

wofür ist das simulieren von Namensräumen gut? Bei moock steht zB
PHP-Code:
if(_global.org == undefined)
{
    
_global.org = new Object();
}
if(
_global.org.moock == undefined)
{
    
_global.org.moock = new Object();

Und das steht bei all seinen Klassen. Was ist der genau Vorteil und vor allem der Zweck dieser Sache?

Schonmal danke für jeden Tip.

p-flash
p-flash ist offline   Mit Zitat antworten
Alt 08-01-2005, 12:00   #2 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
initialisierung von einem objekt, dass wiederum, wenn noch nicht vorhanden ein weiteres objekt in sich erstellt...

ich hätte das aber in der manier gelöst:
ActionScript:
  1. if(!org) { _global.org={}};
  2. if(!org.moock){ _global.org.moock={}};

nunja...im endeffekt genau das gleiche - halt andere syntax.

aber was das mit namensräumen zu tunhaben soll, ist mir noch unklar...was meintest du damit?


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 08-01-2005, 12:09   #3 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Der Vorteil von Namensraeumen ist, dass zwei Klassen den gleichen Namen haben können, ohne dass sie sich stören.

Stell dir vor, du hast zwei SWFs, die jeweils als MVC aufgebaut sind und deren Hauptklassen du deshalb Model, View und Controller genannt hast. Wenn du diese beiden SWFs jetzt in einen anderen SWF laden würdest, kämen sich die Klassen u.U. in die Quere. Durch die Namensraeume kannst du das vermeiden, in dem die Klassen des einen swfs in einen anderen Namensraum als die des anderen gelegt werden.

Das mit der umgedrehten Domain macht man deshalb, weil Domains weltweit eindeutig sind. Wenn ich meine Sachen in de.bokelberg ablege, kann ich mit Moock zusammenarbeiten, ohne dass wir uns gegenseitig die Klassen zerschiessen.

mfg r.

Geändert von bokel (08-01-2005 um 12:27 Uhr)
bokel ist offline   Mit Zitat antworten
Alt 08-01-2005, 12:38   #4 (permalink)
Waffe==Verstand
 
Benutzerbild von p-flash
 
Registriert seit: Jul 2004
Ort: Düsseldorf
Beiträge: 724
@bokel
Meine Domain ist zB p-creations.com. Wenn ich zB zwei Spiele mache und bei die Klasse Hauptfigur haben, nenne ich beide com.p-creations.hauptfigur oder nicht? Stören sie sich nicht? was ist denn wenn sie sich stören? Wird dann eine klasse nicht erstellt?

@kelor
glaube bokel hat deine Frage beantwortet.

Vielen Dank.

p-flash
p-flash ist offline   Mit Zitat antworten
Alt 08-01-2005, 12:52   #5 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Die eine Klasse würde com.p-creations.spiel1.HauptFigur heissen und die andere entsprechend com.p-creations.spiel2.HauptFigur. Allerdings ist das - (minus) kein erlaubtes Zeichen für einen Variablennamen in Flash, deshalb musst du da was anderes benutzen oder den Strich weglassen.

mfg. r.
bokel ist offline   Mit Zitat antworten
Alt 08-01-2005, 12:57   #6 (permalink)
Flashaholic
 
Benutzerbild von atothek
 
Registriert seit: Feb 2003
Ort: Berlin
Beiträge: 1.459
na oder das ganze gleich vernünftig aufgebaut mit einer Chareckter Superklasse
und welche von verschidenen Speziellen charekter klassen erweitert wird, also per vererbung. und dann wie ralf schon sagt für jedes spiel einen eigenen namensraum schaffen bzw.com.p_createions.projects.game1 und com.p_createions.projects.game2

mfg
alex
__________________
TVNEXT Solutions
atothek ist offline   Mit Zitat antworten
Alt 08-01-2005, 15:17   #7 (permalink)
Waffe==Verstand
 
Benutzerbild von p-flash
 
Registriert seit: Jul 2004
Ort: Düsseldorf
Beiträge: 724
Achso, verstehe jetzt. Super danke!

/edit
doch noch eine frage:
Zitat:
na oder das ganze gleich vernünftig aufgebaut mit einer Chareckter Superklasse
und welche von verschidenen Speziellen charekter klassen erweitert wird, also per vererbung.
Was genau meinst du damit?


p-flash

Geändert von p-flash (08-01-2005 um 15:20 Uhr)
p-flash ist offline   Mit Zitat antworten
Alt 08-01-2005, 15:42   #8 (permalink)
Flashaholic
 
Benutzerbild von atothek
 
Registriert seit: Feb 2003
Ort: Berlin
Beiträge: 1.459
na es geht um vererbung also du erstellt dir eine basis klasse welche alle eigenschaften und methoden vereint die auf jeglichen Charakter zutreffen, das nennt man auch Data abstraction also analyse des objectes

kleines beispiel

PHP-Code:

/**
* superKlasse stellt eigenschaften und methoden
* zur verfügung die jeder character hat 
*/
Character = function() {
    
this._name undefined;
    
this._age undefined;
}

Character.prototype.setName = function(name) {
    
this._name name;
}

Character.prototype.getName = function(name) {
    return 
this._name;
}

Character.prototype.setAge = function(age) {
    
this._age age;
}

Character.prototype.getAge = function(name) {
    return 
this._age;
}

/**
* childKlasse welche von superklasse erbt
* diese klasse verfügt über alle eigenschaften und methoden 
* von Character und Magicus spezielle
*/
Magicus = function(){
    
this._magic undefined;
}

/* vererbungs */
Magicus.prototype = new Character();

Magicus.prototype.setMagic = function(magic) {
    
this._magic magic;
}

Magicus.prototype.getMagic = function(name) {
    return 
this._magic;
}

/**
* childKlasse welche von superklasse erbt
* diese klasse verfügt über alle eigenschaften und methoden 
* von Character und Palatin spezielle
*/
Palatin = function(){
    
this._force undefined;
}

/* vererbungs */
Palatin.prototype = new Character();

Palatin.prototype.setForce = function(force) {
    
this._force force;
}

Palatin.prototype.getForce = function(name) {
    return 
this._force;
}

magier = new Magicus();
magier.setName("p-flash");
magier.setAge(265); // magier sind immer alt ;)
magier.setMagic(120);

palatin = new Palatin();
palatin.setName("atothek");
palatin.setAge(28);
palatin.setForce(33); 
das ganze kann man noch verfeinern in dem mann zB div gruppen erstellt
also charekter als superklasse dann gibt es
Magical und Fighting welche die superklasse erweitern nun kann man zB sagen okay ich will nen charakter erstellen der kämfen und auch zaubern kann und erstellt ne klasse die sowohl von Magical als auch von Fighting erbt.

mfg
alex
__________________
TVNEXT Solutions
atothek ist offline   Mit Zitat antworten
Alt 09-01-2005, 00:29   #9 (permalink)
Waffe==Verstand
 
Benutzerbild von p-flash
 
Registriert seit: Jul 2004
Ort: Düsseldorf
Beiträge: 724
Vielen Dank. Das war jetzt sehr hilfreich. Schreibe meinen Code am besten mal um.

Danke!!

p-flash
p-flash 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 01:20 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele