Zurück   Flashforum > Flash > ActionScript > Softwarearchitektur und Entwurfsmuster

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 30-01-2006, 17:16   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2001
Beiträge: 60
oberklasse

kann mir von euch jemand fix auf die sprunge helfen.
ich moechte einem mc aus der oberklasse in einer unterklasse ansprechen
und einen anderen mc hineinpacken, allerdings funzt nicht mal ein trace auf den eltern-mc in der oberklasse. einen string hingegen kann ich erben.
PHP-Code:
class Oberklasse{
var 
meinString "derString";
var 
mein_mc:MovieClip;
//
function Oberklassse(){
mein_mc createEmptyMovieClip("mein_mc"1);
}
function 
init(){
var 
unterKlasse:Unterklassse = new Unterklasse();
}

unterklasse:
PHP-Code:
class Unterklasse extends Oberklasse{
var 
sub_mc:MovieClip;
//
function Unterklasse(){
sub_mc super.mein_mc.attacheMovie("library_name""neuerName"2);

trace("string:"+super.meinString);
trace("mein mc?"+super.mein_mc._name);
}

Fla
PHP-Code:
var oberKlasse:Oberklasse=new Oberklasse(); 
__________________
-----edeltune.de---------

Geändert von 23edeltune (30-01-2006 um 17:38 Uhr)
23edeltune ist offline   Mit Zitat antworten
Alt 30-01-2006, 17:27   #2 (permalink)
nerdig working
 
Benutzerbild von michael
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 5.838
entweder hast du einiges an der oberklassen vergessen oder zum posten nur weggelassen.

wenn du

var mein_mc:MovieClip;

deklarierst


kannst du deshalb noch nicht mit

mein_mc.createEmptyMovieClip("myMC", 1);

einen neuen mc _darin_ erzeugen.

mit mein_mc = createEmptyMovieClip("mein_mc", 1);

wird da schon eher was draus.
michael ist offline   Mit Zitat antworten
Alt 30-01-2006, 17:39   #3 (permalink)
Neuer User
 
Registriert seit: Dec 2001
Beiträge: 60
...ups, dass habe heir vergessen zu posten. danke dir.

darin liegt aber nicht das problem.
der mc der oberklasse ist in ihrer instanz ansprechbar.
__________________
-----edeltune.de---------
23edeltune ist offline   Mit Zitat antworten
Alt 30-01-2006, 18:04   #4 (permalink)
Neuer User
 
Registriert seit: Dec 2001
Beiträge: 60
Wenn ich mir in der Oberklasse durch eine Funktion den MC returne,
kommt er auch in der Unterklasse an.

PHP-Code:
    function getMc():MovieClip{
        return 
_root.attachMovie("meinMcAusDerLibrary""mc"1);
        } 
Allerdings kann ich ihn nicht variieren: getMc()._x=100; geht zum Beispiel nicht.
Andere MovieClips kann ich auch nicht in selbigen reinladen.

Kann mir das jemand erklaeren?? Gibt's da ein Rechte Management oder verstehe das OOP Konzept in AS falsch?
__________________
-----edeltune.de---------
23edeltune ist offline   Mit Zitat antworten
Alt 30-01-2006, 18:49   #5 (permalink)
using namespace
 
Benutzerbild von artjom
 
Registriert seit: May 2002
Ort: Hamburg underground
Beiträge: 657
also folgendes:
1# im konstrukor der oberklasse haste keine instanz angegeben wo ein emptyMovieClip erstellt werden soll. und deinem code in der .fla nach, haste diese klasse auch nicht mit einem movieclip verbunden.
2# wenn in du der timeline nur sowas schreibst
PHP-Code:
var oberKlasse:Oberklasse=new Oberklasse(); 
dann jukt es die unterklasse nicht. denn derer konstruktor wird nicht aufgerufen.
3# die init funktion in der oberklasse ist verwirrend !
4# schönes wetter heute

getMc()._x=100 funzt nicht? ich denk schon!

gruß
__________________
artjom.com -|- Melom
Einen PC beschleunigen? Klar, mit 9,81 m/s^2!

Geändert von artjom (30-01-2006 um 18:55 Uhr)
artjom ist offline   Mit Zitat antworten
Alt 30-01-2006, 19:25   #6 (permalink)
Neuer User
 
Registriert seit: Dec 2001
Beiträge: 60
mhh, also der konstruktor wird schon aufgerufen.

ich habe mal ein paar beispieldateien konstruiert, dann wird's vielleicht deutlich...
Angehängte Dateien
Dateityp: rar test.rar (4,8 KB, 4x aufgerufen)
__________________
-----edeltune.de---------
23edeltune ist offline   Mit Zitat antworten
Alt 30-01-2006, 19:39   #7 (permalink)
using namespace
 
Benutzerbild von artjom
 
Registriert seit: May 2002
Ort: Hamburg underground
Beiträge: 657
da bekomme ich gleich n fehler:
Zitat:
Der Name dieser Klasse, 'Unterklasse', steht im Konflikt mit dem Namen einer anderen geladenen Klasse, 'Unterklasse'.
class Unterklasse extends Oberklasse
das liegt an der erwähnten methode init, deren namen du nun in abDiePost geändert hast. also auskommentieren. und so aufrufen:
PHP-Code:
var unterKlasse:Unterklasse= new Unterklasse();
oder so:
var 
oberKlasse:Oberklasse= new Unterklasse();//unterklasse ist ja die erweiterte oberklasse 
das weitere problem ist, dass du verschiedene movieclips auf die selbe tiefe attachst. mach die oberklasse so:
PHP-Code:
class Oberklasse {
    var 
ober_mc:MovieClip;
    function 
Oberklasse() {
        
ober_mc _root.attachMovie("oberMovie""egal",_root.getNextHighestDepth());
        
trace("well constructed parent class");
    }
    function 
getMc():MovieClip {
        
//return ober_mc;
         
return _root.createEmptyMovieClip("oberMC"_root.getNextHighestDepth());
    }
    function 
abDiePost(){
        
//var unterKlasse:Unterklasse = new Unterklasse(100,100);
        
}

den aufruf der getMc() funktion über super.getMc() brauchst du gar nicht. diese funktion steht dir nach der vererbung auch in der unterklasse zur verfügung. super.methode brauchst du nur dann, wenn du in der unterklasse methoden überschreibst aber trotzdem diese methoden aus der oberklasse verwenden möchtest.
so:
PHP-Code:
class Unterklasse extends Oberklasse{
    var 
unter_mc:MovieClip;
    function 
Unterklasse(x:Number,y:Number){
        
unter_mc getMc().attachMovie("ausDerLib""meinUnterMc"getMc().getNextHighestDepth());
        
trace("      super.oberMc:   "+super.ober_mc);
        
trace(" mit getMc():   "+getMc()+"    mc wird erkannt, ist jedoch nicht variierbar ");
        
unter_mc._x 300;//habs nicht probiert, müsste aber funzen
        
}
    } 
gruß
__________________
artjom.com -|- Melom
Einen PC beschleunigen? Klar, mit 9,81 m/s^2!
artjom ist offline   Mit Zitat antworten
Alt 30-01-2006, 20:11   #8 (permalink)
Neuer User
 
Registriert seit: Dec 2001
Beiträge: 60
YES, YOU SAVED THE DAY! Jetzt klappt's wunderbar! Danke!
__________________
-----edeltune.de---------
23edeltune 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 19:51 Uhr.

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


Copyright ©1999 – 2014 Marc Thiele