私は 2 つのクラスを持っています。別のクラスのテキストフィールドからクラスの変数またはプロパティにアクセスし、すべてのフレームで更新したいと考えています。これら2つのクラスのコードは次のとおりです。非常に単純ですが、私の最初のプロジェクトとして、問題が発生しています。GametextField.asクラスのRoadRun.asクラスの場合、レベルプロパティに単にアクセスするだけです
package
{
import flash.display.Graphics;
import flash.display.MovieClip;
import flash.display.Stage;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.utils.Timer;
public class RoadRun extends MovieClip
{
public var carHit:Boolean = false;
public var roadWidth:Number;
public var roadHeight:Number;
public var speed:Number = .5;
private var m_level:Number = 1;
private var levelSpeed:Number= speed * level ;
public function RoadRun()
{
this.addEventListener(Event.ADDED_TO_STAGE, added);
}
private function added(event:Event):void
{
roadHeight = this.height;
roadWidth = this.width;
addEventListener(Event.ENTER_FRAME, move);
}
private function move(event:Event):void
{
//trace(m_level);
m_level = m_level + 0.1;
if(carHit == false)
{
this.y += speed;
speed++;
if(speed >= 10)
{
speed = 10;
}
if(this.y >= 400)
{
this.y = this.height - this.height - this.height; // this.y = 400;
}
}
else if(carHit == true)
{
this.y += speed;
this.speed -= .1;
if(this.y >= 400)
{
this.y = -400;
}
this.y = this.y;
if(this.speed <= 0.0)
{
speed = 0;
}
}
}
public function get level():Number
{
return this.m_level ;
}
}
}
そして、ここでアクセスしたいと思います。
package
{
import flash.display.MovieClip;
import flash.display.Stage;
import flash.events.Event;
import flash.text.TextField;
public class GameTextField extends MovieClip
{
public var score:Number = 0;
private var road:RoadRun = new RoadRun();
public var level:Number;
private var scoreField:TextField = new TextField();
public function GameTextField()
{
addEventListener(Event.ADDED_TO_STAGE, added);
}
private function added(event:Event):void
{
scoreField.background = true;
scoreField.height = 20;
scoreField.width = stage.stageWidth;
scoreField.backgroundColor = 0x000000 ;
scoreField.textColor = 0xFFFFFF;
scoreField.y = 0;
scoreField.x = 0;
addChild(scoreField);
addEventListener(Event.ENTER_FRAME, update);
}
private function update(event:Event):void
{
trace(road.level)
scoreField.text = "Score = " + String(score) + " Level = " + String(level) ;
}
}
}
さて、すべてが完璧に機能していますが、レベルは GameTextField クラスで更新されていません。RoadRun Class では問題ありませんが (trace() ステートメントで追跡しました。ここでは、
! http://i1363.photobucket.com/albums/r711/fakhar121/GameScreen_zps75a4dc09.png