Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 16-09-2010, 11:24   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2010
Beiträge: 112
MovieClip - Instanzen in Arrays speichern geht schief

Hallo zusammen vllt. hat jemand Erfahrung mit dieser Problematik.

In einer Schleife aus rekursiven Methoden werden Instanzen von MovieClips erstellt. Diese werden zunächst als Variablen mit eindeutiger Typisierung erstellt, bis dahin funktioiert auch alles, d.h. ich kann alle Eigenschaften auslesen. Weise ich diese Variable nun dem geünschten Array-Index hinzu und versuche dieses weiterzuverwenden erhalte ich ständig den Type Error #1010 und kann auch keine Eigenschaften mehr auslesen, bzw. sind diese dann "undefined".

Würde mich um Hilfe sehr freuen.
Jaro_E ist offline   Mit Zitat antworten
Alt 16-09-2010, 11:33   #2 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 7.306
Versuch den mc wieder in eine typisierte Variable zu casten:
PHP-Code:
var mc:MovieClip = array[5] as MovieClip;
if(
mc){
   
// alles was Du mit mc tun möchtest

Wenn Du für FP10 veröffentlichen kannst, wäre der bessere Weg mit einem Vector vom entsprechenden Typ zu arbeiten.
__________________
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 (16-09-2010 um 11:34 Uhr)
Martin Kraft ist offline   Mit Zitat antworten
Alt 16-09-2010, 14:14   #3 (permalink)
Neuer User
 
Registriert seit: Sep 2010
Beiträge: 112
Ich brauche die MC-Instanz eigentlich hauptsächlich als Array. Ist es möglich, den Array-Index zu typisieren, bevor ich ihn mit dem MovieClip belege? Oder meinst du ich soll global das Array verwenden, aber lokal dann immer zurückwandeln? Wenn ja, mutet mir das etwas seltsam an. Das hieße ja, dass Arrays vom Umfang der verwendbaren Typen äußerst begrenzt sind.

Geändert von Jaro_E (16-09-2010 um 14:19 Uhr)
Jaro_E ist offline   Mit Zitat antworten
Alt 16-09-2010, 14:40   #4 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 687
Arrays sind untypisiert. Aber daran dürfte es nicht liegen, da muss was anderes schieflaufen.

Das hier funktioniert z.B. alles einwandfrei:
Code:
  1. var mcArray:Array=new Array();
  2.  
  3. var mc1:MovieClip=new MovieClip();
  4. mc1.x=100;
  5. var mc2:MovieClip=new MovieClip();
  6. mc2.myVar=5;
  7. mcArray.push(mc1);
  8. mcArray[1]=mc2;
  9.  
  10. trace(mcArray[0].x,mcArray[1].x);
  11. trace(mcArray[1].myVar);

Kannst du mal ein Stück Code posten, wo man das auf Anhieb nachvollziehen kann was bei dir passiert? (Am besten lauffähig durch Copy & Paste in die Timeline so wie mein Code, das macht das Helfen einfacher)
joeydee ist offline   Mit Zitat antworten
Alt 16-09-2010, 14:45   #5 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 7.306
Zitat:
Zitat von Jaro_E Beitrag anzeigen
Ich brauche die MC-Instanz eigentlich hauptsächlich als Array.
Nehme an, das Du damit sagen willst, dass Du sie hauptsächlich über einen Array ansprichst?!

Zitat:
Zitat von Jaro_E Beitrag anzeigen
Ist es möglich, den Array-Index zu typisieren, bevor ich ihn mit dem MovieClip belege?
Der Index eines Arrays ist in Flash immer ein int. Aber Du meinst wahrscheinlich den Inhalt, der ja alles möglich sein kann?! Um den zu typisieren gibt's - wie gesagt - seit FP10 die Klasse Vector.

Zitat:
Zitat von Jaro_E Beitrag anzeigen
Oder meinst du ich soll global das Array verwenden, aber lokal dann immer zurückwandeln?
Wenn Du mit "lokal" Schleifendurchläufe etc. meinst: ja.

Zitat:
Zitat von Jaro_E Beitrag anzeigen
Wenn ja, mutet mir das etwas seltsam an. Das hieße ja, dass Arrays vom Umfang der verwendbaren Typen äußerst begrenzt sind.
Nein - eben weil ein Array alles sein kann (auch gemischt) ist er nicht typisierbar. Die oben angesprochen Vectoren sind hingegen typisierbar, dürfen dafür aber nur eine Art von Elementen enthalten und keine Lücken aufweisen...
__________________
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 (16-09-2010 um 14:48 Uhr)
Martin Kraft ist offline   Mit Zitat antworten
Alt 16-09-2010, 15:02   #6 (permalink)
Neuer User
 
Registriert seit: Sep 2010
Beiträge: 112
Okay, die Lösungen sind mir klar, das Problem verstehe ich aber immer noch nicht. und zwar, warum ich Arrays nicht nach folgender Art auslesen kann.

also ganz banal:

PHP-Code:
trace(myArray[i].height); 
Eben das funktioniert nicht. In dem Fall ist der Inhalt des Arrays natürlich ein MovieClip.
Jaro_E ist offline   Mit Zitat antworten
Alt 16-09-2010, 15:20   #7 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 7.306
Seltsam - bei mir funktioniert folgender Code sogar im strikten Modus:
PHP-Code:
var a:Array = [ new MovieClip() ];
tracea[0].height );  // 0 
Kann es sein, dass ArrayElement nicht exisitiert oder i nicht definiert ist?
__________________
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!
Martin Kraft ist offline   Mit Zitat antworten
Alt 16-09-2010, 16:09   #8 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.348
Würde eine null Referenz in Array[i] stehen, dann gäbe es einen Laufzeitfehler.
Omega Psi ist gerade online   Mit Zitat antworten
Alt 16-09-2010, 16:37   #9 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 7.306
Vielleicht existiert das Element ja, ist aber kein MovieClip?
Oder aber i ist kein int und löst den Type Error aus.

Aber bevor wir hier weiter Nostradamus spielen, wäre etwas Code nicht schlecht! Poste mal den Teil in dem Du den Array befüllst und denn in dem Du wieder auf ihn zugreifst!
__________________
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!
Martin Kraft ist offline   Mit Zitat antworten
Alt 16-09-2010, 16:50   #10 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.348
Hm
Code:
const _clips:Array = [new MovieClip(), {}, new MovieClip()];
const _length:int = _clips.length;

for (var i:int; i < _length; i++)
{
  var clip:MovieClip = MovieClip(_clips[i]);
  trace(clip.x, clip.y, clip.width, clip.height);
}
oder
Code:
const _clips:Array = [new MovieClip(), {}, new MovieClip()];

for each(var clip:MovieClip in _clips)
{
  trace(clip.x, clip.y, clip.width, clip.height);
}
Beide Schleifen sollten Laufzeitfehler produzieren.
Omega Psi ist gerade online   Mit Zitat antworten
Alt 16-09-2010, 20:53   #11 (permalink)
Neuer User
 
Registriert seit: Sep 2010
Beiträge: 112
Hier ist der Code:

PHP-Code:
public function prepareArticleMasked():void {

            
trace("prepareArticleMasked(); started");

            
trace("CounterIndex " counterIndex);

            if (
this.counterIndex <= this.BlogXML.article.length() - 1) {
                            
                
trace("Anzahl Article: " this.BlogXML.article.length());    
                
                
//CHILDS OF SECOND LEVEL
                //XML AND CONTENT ARTICLE
                
                //ARTICLEMASK
                
var articleMask:maskRectangle = new maskRectangle();
                
trace(articleMask.height);
                
this.articleMasks[this.counterIndex] = articleMask;
                
trace(this.articleMasks[this.counterIndex]);
                
                
//MORELESSBUTTON
                
var mLButton:moreLessButton = new moreLessButton();
                
                
trace("mlB height: "  mLButton.height);
                
this.moreLessButtons[this.counterIndex] = moreLessButton;
                
trace(this.moreLessButtons[this.counterIndex]);
                
                
trace("mlB height: " this.moreLessButtons[this.counterIndex].width);
                
                
//var articleXML:XML = new XML(this.BlogXML.article[this.counterIndex]);
                //this.articleXMLs[this.counterIndex] = articleXML;

                //CREATE articles[]
                
var article = new Article(thisthis.BlogXML.article[this.counterIndex]);
                
                
trace("article: " article);
                
this.articles[this.counterIndex] = article;
                
trace("done");
                
trace(this.articles[this.counterIndex]);
                
                
trace("done");
                
                
//the next method is called inside Article if construction is ready.        
            
}
            
            else { 
addBlogToStage(); }    
        }
         
        
        
//CREATE ARTICLE MASKED
        
public function createArticleMasked():void {
            
            
trace("createArticleMasked() started");
                
            
//CHILD OF FIRST LEVEL: ARTICLE MASKED, USE PARAMETER  OF ARTICLE
            
var articleMasked:ContentMaskedRollInOut

            
//articleMasked = new ContentMaskedRollInOut();
            //public function ContentMaskedRollInOut(p_associatedCM:MovieClip, p_associatedContent:MovieClip, p_parent:MovieClip, p_cm_content:MovieClip, p_cm_rollInOutButton:moreLessButton, p_isRolledIn:Boolean, p_heightRolledIn:Number, p_automaticInstallation:Number) {
            
            
var isRolledIn:Boolean true;
            var 
automaticActivation:Number 2;
            
            
            
            
trace(this.parentToBeChildOf.width);
            
trace(this.height);
            
//trace(this.articles[this.counterIndex].height);
            
trace(this.moreLessButtons[this.counterIndex].height);
            
trace(this.articles[this.counterIndex].markerMoreLess);
        
            
articleMasked = new ContentMaskedRollInOut(this.parentToBeChildOfthisthisthis.articles[this.counterIndex], this.moreLessButtons[this.counterIndex], isRolledInthis.articles[this.counterIndex].markerMoreLessautomaticActivation);
            
trace(articleMasked.height);
                
            
this.articlesMasked[this.counterIndex] = articleMasked;
                
            
installArticleMasked();
        } 
In der prepareArticleMasked() - Methode werden die Arrays gefüllt, in der createArticleMasked() - Methode werden die Instanzen oder Eigenschaften davon weiterverwendet.
Jaro_E ist offline   Mit Zitat antworten
Alt 16-09-2010, 20:59   #12 (permalink)
Neuer User
 
Registriert seit: Sep 2010
Beiträge: 112
Das Seltsame dabei ist: Wenn ich normale Instanzen erstelle und sie auslese funktioniert alles, sobald ich sie dem Array zuweise, klappts nicht mehr., z.B. unter //MORELESSBUTTON in der ersten Methode.
Jaro_E ist offline   Mit Zitat antworten
Alt 17-09-2010, 08:52   #13 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 7.306
  • Wo und wie deklarierst Du counterIndex und die ganzen Arrays?
  • Wie zählst Du counterIndex hoch?
  • Steht der Code in einer Klasse?

Und noch ein paar Anmerkungen:
  • Wieso hantierst Du mit so vielen Arrays rum? Ich würde einen Array für die article erstellen und alles andere (maskRectangle, moreLessButton, etc..) auf eine entsprechende Eigenschaften in dieser Klasse legen...
  • Wenn der Code in einer Klasse steht kannst du die ganzen this weglassen.
  • Es hat sich eingebürgert KlassenNamen groß zu schreiben. Mehr dazu in den Coding Conventions.
__________________
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 (17-09-2010 um 08:53 Uhr)
Martin Kraft ist offline   Mit Zitat antworten
Alt 17-09-2010, 10:46   #14 (permalink)
Neuer User
 
Registriert seit: Sep 2010
Beiträge: 112
Hier mal die ganze Klasse:

PHP-Code:
ackage SmrzMusicblog {

    
import CSoCM.*;
    
import CSoCM.ContentMaskedRollInOut;
    
    
import flash.display.*;
    
import flash.display.MovieClip;
    
import flash.events.*;
    
import flash.events.Event;
    
import flash.net.*
    
import fl.transitions.*;    
    
import flash.utils.*;
    
import flash.display.DisplayObject;
    
import flash.geom.Rectangle;
    
    
    public class 
Blog extends MovieClip {

        
//PARENT TO BE CHILD OF
        
public var parentToBeChildOf:BlogMasked;

        
//CHILDS OF FIRST LEVEL
        
public var articlesMasked:Array;
        
        
//CHILDS OF SECOND LEVEL 
        
public var articleMasks:Array;
        public var 
articles:Array;
        public var 
moreLessButtons:Array;
        
        
        
//XML-Interface
        
public var BlogXML_URL:String;
        public var 
BlogXML_URLRequest:URLRequest;
        public var 
BlogXML_URLLoader:URLLoader;
        public var 
BlogXML:XML;
        
//the XML is splitted along the node "Articles"
        
public var articleXMLs:Array;
        
        
//Counter for Index and Position
        
public var counterIndex:Number;
        public var 
counterPositionY:Number;
        
        
        public function 
Blog(p_Parent:BlogMaskedp_xmlURL:String) {
            
            
this.parentToBeChildOf p_Parent;
            
            
//Instance Arrays
            
this.articlesMasked = new Array();
        
            
this.articleMasks = new Array();
            
this.articles = new Array();
            
this.moreLessButtons = new Array();
            
            
//Load XML-File
            
this.BlogXML_URL p_xmlURL;
            
this.BlogXML_URLRequest = new URLRequest(this.BlogXML_URL);
            
this.BlogXML_URLLoader = new URLLoader(this.BlogXML_URLRequest);
            
            
this.BlogXML_URLLoader.addEventListener(Event.COMPLETEparseBlogXML);
            
            
this.counterIndex 0;
            
this.counterPositionY 0;
            
            
trace("Blog(" p_Parent ", " p_xmlURL ") constructed");
        }
        
        
        public function 
parseBlogXML(evt:Event):void {

            
trace("parseBlogXML() started")

            
trace("loading XML complete");

            
this.BlogXML = new XML(evt.target.data);
            
this.BlogXML.ignoreWhitespace true;
                
            
prepareArticleMasked();
        }
        
        
        
        
//CREATE AND FILL THE ARRAYS WITH CHILDS WITH DATA FROM XML-OBJECT/ARTICLE[] via Recursive Methods
        
        //CREATE ARTICLEMASKS, ARTICLES, MORELESSBUTTONS
        //CONTENT IS NEEDED TO CREATE CONTENTMASKED 
        
public function prepareArticleMasked():void {

            
trace("prepareArticleMasked(); started");

            
trace("CounterIndex " counterIndex);

            if (
this.counterIndex <= this.BlogXML.article.length() - 1) {
                            
                
trace("Anzahl Article: " this.BlogXML.article.length());    
                
                
//CHILDS OF SECOND LEVEL
                //XML AND CONTENT ARTICLE
                
                //ARTICLEMASK
                
var articleMask:maskRectangle = new maskRectangle();
                
trace(articleMask.height);
                
this.articleMasks[this.counterIndex] = articleMask;
                
trace(this.articleMasks[this.counterIndex]);
                
                
//MORELESSBUTTON
                
var mLButton:moreLessButton = new moreLessButton();
                
                
trace("mlB height: "  mLButton.height);
                
this.moreLessButtons[this.counterIndex] = moreLessButton;
                
trace(this.moreLessButtons[this.counterIndex]);
                
                
trace("mlB height: " this.moreLessButtons[this.counterIndex].width);
                
                
//var articleXML:XML = new XML(this.BlogXML.article[this.counterIndex]);
                //this.articleXMLs[this.counterIndex] = articleXML;

                //CREATE articles[]
                
var article = new Article(thisthis.BlogXML.article[this.counterIndex]);
                
                
trace("article: " article);
                
this.articles[this.counterIndex] = article;
                
trace("done");
                
trace(this.articles[this.counterIndex]);
                
                
trace("done");
                
                
//the next method is called inside Article if construction is ready.        
            
}
            
            else { 
addBlogToStage(); }    
        }
         
        
        
//CREATE ARTICLE MASKED
        
public function createArticleMasked():void {
            
            
trace("createArticleMasked() started");
                
            
//CHILD OF FIRST LEVEL: ARTICLE MASKED, USE PARAMETER  OF ARTICLE
            
var articleMasked:ContentMaskedRollInOut

            
//articleMasked = new ContentMaskedRollInOut();
            //public function ContentMaskedRollInOut(p_associatedCM:MovieClip, p_associatedContent:MovieClip, p_parent:MovieClip, p_cm_content:MovieClip, p_cm_rollInOutButton:moreLessButton, p_isRolledIn:Boolean, p_heightRolledIn:Number, p_automaticInstallation:Number) {
            
            
var isRolledIn:Boolean true;
            var 
automaticActivation:Number 2;
            
            
            
            
trace(this.parentToBeChildOf.width);
            
trace(this.height);
            
//trace(this.articles[this.counterIndex].height);
            
trace(this.moreLessButtons[this.counterIndex].height);
            
trace(this.articles[this.counterIndex].markerMoreLess);
        
            
articleMasked = new ContentMaskedRollInOut(this.parentToBeChildOfthisthisthis.articles[this.counterIndex], this.moreLessButtons[this.counterIndex], isRolledInthis.articles[this.counterIndex].markerMoreLessautomaticActivation);
            
trace(articleMasked.height);
                
            
trace("****");
                
            
this.articlesMasked[this.counterIndex] = articleMasked;
                
            
installArticleMasked();
        }
    
            
        
//ADD CHILDS, ADD ARTICLES MASKED TO STAGE    
        
public function installArticleMasked():void {
            
            
trace("installArticleMasked(); started");
            
            
//ADD CHILDS OF THE SECOND LEVEL INSIDE FIRST LEVEL
                
            //ARTICLES[]
             
this.articles[this.counterIndex].0;
            
this.articles[this.counterIndex].0;
            
            
this.articlesMasked[this.counterIndex].addChild(this.articles[this.counterIndex]);
                
            
//ARTICLEMASKS[]
            
this.articleMasks[this.counterIndex].0;
            
this.articleMasks[this.counterIndex].0;

            
this.articlesMasked[this.counterIndex].addChild(this.articleMasks[this.counterIndex]);
                
            
//MORELESS BUTTON
            
this.moreLessButtons[this.counterIndex].50
            this
.moreLessButtons[this.counterIndex].this.articles[this.counterIndex].markerMoreLess;
                
            
this.articlesMasked[this.counterIndex].addChild(this.moreLessButtons[this.counterIndex]);
                    
            
//Set Position, ame and Add To Blog
            
this.articlesMasked[counterIndex].0;
            
this.articlesMasked[counterIndex].counterPositionY;
            
this.articlesMasked[counterIndex].ALPHA 1;
            
this.addChild(articlesMasked[counterIndex]);    
                
            
//GO ON
            //INCREMENT COUNTERS
            
this.counterPositionY this.articlesMasked[this.counterIndex].heightRolledIn;
            
this.counterIndex++;
    
            
//LOOP
            
this.prepareArticleMasked();
        }
    
        
        public function 
addBlogToStage():void {
            
            
trace("addBlogToStage(); started");
            
            
this.0;
            
this.0;
            
this.parentToBeChildOf.displayBlog();
        }
    }

Der Article-Constructur ruft bei Fertigstellung die Methode createArticleMasked() auf. Hochgezählt wird am Ende der installArticleMasked() - Methode.

CounterIndex hab ich mir gerade ausgegebn, ist theoretisch alles richtig.

Mit den vielen Arrays hast du natürlich recht, ich könnte wirklich alle anderen als Eigenschaft von ArticleMasked definieren, aber damit gehen wir dem Problem ja aus dem Weg.

Die kleinen Klassennamen bedeuten für mich, dass die Klassen als MovieClip Symbole in der Bibliothek liegen.
Jaro_E ist offline   Mit Zitat antworten
Alt 17-09-2010, 10:55   #15 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.348
Wieso so lange Zeilen? Martin hat mit allem sagt vollkommen. Das Handling mit den Arrays ist ein schlechter Stil. Und du erschwerst nicht nur dir die Arbeit sondern auch den Leuten, die du um Hilfe bittest. Klassen und Symbolnamen sollten groß beginnen, allein schon aus Gründen der Lesbarkeit.
Omega Psi ist gerade online   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
array

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
Instanzen eigener Klasse in Array speichern geht nicht punkrockbabe ActionScript 3 8 13-04-2009 23:21
Movieclip in Variable speichern? geht das? tomtitom Flash Einsteiger 1 03-10-2007 16:30
Navigation mit Submenüs via Actionsskript, Instanzen und Arrays... Duke79 Flash Einsteiger 0 23-08-2007 14:32
XML daten in arrays speichern CHRIZZZLIE Flash mit XML und Webservices 34 24-04-2006 17:49
Arrays mit sharedObject speichern Arne_Schmidt ActionScript 1 9 23-02-2004 19:25


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:25 Uhr.

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


Copyright ©1999 – 2014 Marc Thiele