PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Erzeugen von Instanzen in Actionscript



detonation997
06-09-2004, 12:06
Hi!

Ich will mit Flash MX 2004 und Actionscript 1.0 von Bibliotheksobjekten Instanzen erzeugen. (Denkt an die Steine eines Arkanoid-Spieles, die in einem Array angeordnet sind).

Dazu habe ich momentan diesen Code verwendet:



_global.w_blocks = 5;
_global.h_blocks = 5;
_global.spaltbreite = 5;
_global.genBlocks = function()
{
for(var i = 0; i < _global.h_blocks; i++)
{
for(var j = 0; j < _global.w_blocks; j++)
{
var new_name = "stein_" + i + "_" + j;
this.attachMovie("Stein",eval(new_name),100+i*_global.w_blocks + j);
_root.eval(new_name)._x = 100 + j * (_root.Stein._width + _global.spaltbreite);
_root.eval(new_name)._y = 100 + i * (_root.Stein._height + _global.spaltbreite);
}
}
}
genBlocks();


Steine werden mir nach dem Funktionsaufruf aber keine angezeigt :(
Weiß jemand, was am Code falsch sein könnte?
Das Bibliotheksobjekt "Stein" ist für Actionscript exportiert worden.

Danke schon im Voraus,
LG Rainer

Claudine
07-09-2004, 05:15
Steine werden mir nach dem Funktionsaufruf aber keine angezeigt :(
Weiß jemand, was am Code falsch sein könnte?


Überschreibst Du nicht innerhalb der Schleife immer wieder dein Objekt?

(Ist schon eine Weile her, das ich mit Flash rumgespielt habe.)

undefined
07-09-2004, 08:21
Also ich sehe da eine menge was nicht stimmt. Ich habe im Moment kein MX zur Hand daher frei heraus unter Kate.
Eval nützt dir nicht wenn es undefined ergibt ;)
Ein AttachMovie kann nur auf eine Object geschehen wo ist es?
_global schlecht sehr schlecht - Global wird nur einmacl zur Laufzeit auf der ersten Ebene Initialisiert und dann nada also verwende _root ;)


genBlocks = function()
{
var w_blocks:Number = 5;
var h_blocks:Number = 5;
var spaltbreite:Number = 5;
for(var i = 0; i < h_blocks; i++)
{
for(var j = 0; j < w_blocks; j++)
{
_root.attachMovie("Stein", _root["stein_" + i + "_" + j], 100+i*w_blocks + j );
_root["stein_" + i + "_" + j]._x = 100 + j * ( Stein._width + spaltbreite );
_root["stein_" + i + "_" + j]._y = 100 + i * ( Stein._height + spaltbreite );
}
}
}
genBlocks();

undefined
07-09-2004, 12:07
So hatte jetzt mx zu verfügung ;)


_root.genBlocks = function()
{
var w_blocks:Number = 5;
var h_blocks:Number = 5;
var spaltbreite:Number = 5;
var levels:Number = 1000;
for (var i = 0; i < h_blocks; i++) {
for (var j = 0; j < w_blocks; j++) {
_root.attachMovie("Stein", "stein_" + i + "_" + j, levels = levels + i + j);
trace(levels);
}
}
};
this.onLoad = _root.genBlocks;

mfg undefined