Jazzua
asked on
as3 movieclip disappears
Hi There Experts,
I'm trying to do something which I thought would be relatively easy but isn't working. In the timer event of my class linked to the fla i'm working on, in my ontick timer event (which is working for other things) I'm trying to update a MovieClip called score which has a TextBox in it (called scoreText) by .05 every "tick". I'm not getting any erros with the below code but the text is flashing up for a millisecond and then disappearing. Any ideas why?
cheers,
~ Jazz
I'm trying to do something which I thought would be relatively easy but isn't working. In the timer event of my class linked to the fla i'm working on, in my ontick timer event (which is working for other things) I'm trying to update a MovieClip called score which has a TextBox in it (called scoreText) by .05 every "tick". I'm not getting any erros with the below code but the text is flashing up for a millisecond and then disappearing. Any ideas why?
cheers,
~ Jazz
//the movieclip declaration
public var score:Score;
//the currentScore, used to keep track of the score, declaration
public var currentScore;
//the timer event in the same class as the above declarations
public function onTick(event:TimerEvent):void
{
currentScore = currentScore + 1;
score.scoreText.text = String(currentScore);
//other unrelated code
}
//the Score class.
package
{
import flash.display.MovieClip;
import flash.text.TextField;
public class Score extends MovieClip
{
public function Score()
{
}
}
}
//the linked Score MovieClip in my library has a dynamic text field in it wth the instance name
//scoreText
if you see if flash on the screen and then go away, normally this happens to me when I have the movieclip being set to visible false or alpha 0 in the code, cause there is some latency in the code.
other things to check are whether or not another movieclip is on top of it, and could be alpha = 0.
the last thing that normally makes a textfield go blank is not having the font embedded, or the font is actually set to white an accident in the code.
try commenting out this line.... score.scoreText.text = String(currentScore);
if it was something to do with your data, and you comment it out, then the text would not flash, but instead stay there...
try to trace out String( currentScore ); and also just plain currentScore... it could be that Flash doesn't like converting something to a string...
hope I got you started in the right direction...
rp / ZA
ASKER
thanks for your help rascalpants,
i tried your suggestion and commented out: "score.scoreText.text = String(currentScore);".
when I did this I could see the default text I had entered in the TextField in my "score" MovieClip at design time ("00").
I then tried just changing the textfield text assignment to: "score.scoreText = "Test";" and embdded the correct characters. The text didn't show up. So i traced: "trace(score.scoreText)" and got "Test" returned in the output window. So it appears the text property is being changed correctly!
So currently the text will show if not changed in the code, but any attempt to programmatically change the text makes the text dissapear.
?????????????????????????? ?????
this has me completely stumped. Any other ideas?
i tried your suggestion and commented out: "score.scoreText.text = String(currentScore);".
when I did this I could see the default text I had entered in the TextField in my "score" MovieClip at design time ("00").
I then tried just changing the textfield text assignment to: "score.scoreText = "Test";" and embdded the correct characters. The text didn't show up. So i traced: "trace(score.scoreText)" and got "Test" returned in the output window. So it appears the text property is being changed correctly!
So currently the text will show if not changed in the code, but any attempt to programmatically change the text makes the text dissapear.
??????????????????????????
this has me completely stumped. Any other ideas?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
It turned out I had been using ScoreText rather than scoreText, though it wasn't being picked up by the compiler because I had a ScoreText class from earlier development that I had forgotten about. I feel like an idiot, but its working now, and your advice helped me track down the problem. Cheers :)
LOL... sorry, that happens to the best of us...
BUT... I would start naming your movieclips with an underscore and extention... like scoreText_mc... that way you never have a Class or a textbox that is named the same...
rp / ZA
BUT... I would start naming your movieclips with an underscore and extention... like scoreText_mc... that way you never have a Class or a textbox that is named the same...
rp / ZA
ASKER
Open in new window