amerywu
05-23-2005, 05:25 AM
I have a class that extends MovieClip. It has a dynamic textfield that I want to fill in at runtime.
The trouble is that attachMovie and duplicateMovieClip insist that they return a MovieClip so I cannot invoke the method setNumber() in my extension class Numero.
Here is my MovieClip extension
class com.jakestone.rith.view.Numero extends MovieClip
{
private var numero:Number;
private var numero_txt:TextField;
private var numeroover_txt:TextField;
private var numerodown_txt:TextField;
function Numero(ini:Number)
{
super();
//numero=ini;
numero=5;
numero_txt.text=numero+"";
numeroover_txt.text=numero+"";
numerodown_txt.text=numero+"";
}
function setNumber(ini:Number)
{
numero=ini;
}
function onRollOver()
{
this.gotoAndPlay(2);
numeroover_txt.text=numero+"";
}
function onRollOut()
{
this.gotoAndPlay(1);
numero_txt.text=numero+"";
}
}
And here is the class that calls it.
private var numero_mc:Numero;
private function setNumbers(
var i:Number;
var xpos:Number = 50;
var ypos:Number = 400;
for (i=0; i<10; ++i) {
var piece_mc:Numero = numero_mc.duplicateMovieClip("numero"+i, this.getNextHighestDepth());
///the above line fails as it is forcing us to use the Numero class
piece_mc._x = xpos;
piece_mc._y = ypos;
piece_mc._visible = true;
piece_mc.setNumber(i);
pieces[i] = new Object();
pieces[i] = piece_mc;
xpos += piece_mc._width+10;
myMC=createEmptyMovieClip("clip",1);
}
}
The trouble is that attachMovie and duplicateMovieClip insist that they return a MovieClip so I cannot invoke the method setNumber() in my extension class Numero.
Here is my MovieClip extension
class com.jakestone.rith.view.Numero extends MovieClip
{
private var numero:Number;
private var numero_txt:TextField;
private var numeroover_txt:TextField;
private var numerodown_txt:TextField;
function Numero(ini:Number)
{
super();
//numero=ini;
numero=5;
numero_txt.text=numero+"";
numeroover_txt.text=numero+"";
numerodown_txt.text=numero+"";
}
function setNumber(ini:Number)
{
numero=ini;
}
function onRollOver()
{
this.gotoAndPlay(2);
numeroover_txt.text=numero+"";
}
function onRollOut()
{
this.gotoAndPlay(1);
numero_txt.text=numero+"";
}
}
And here is the class that calls it.
private var numero_mc:Numero;
private function setNumbers(
var i:Number;
var xpos:Number = 50;
var ypos:Number = 400;
for (i=0; i<10; ++i) {
var piece_mc:Numero = numero_mc.duplicateMovieClip("numero"+i, this.getNextHighestDepth());
///the above line fails as it is forcing us to use the Numero class
piece_mc._x = xpos;
piece_mc._y = ypos;
piece_mc._visible = true;
piece_mc.setNumber(i);
pieces[i] = new Object();
pieces[i] = piece_mc;
xpos += piece_mc._width+10;
myMC=createEmptyMovieClip("clip",1);
}
}