Ich versuche, meine Kind-Klasse namens "Revolver" Zugriff auf die Variablen "leftarrow" und "rightarrow" von der Elternklasse "Spiel", so dass der Turm drehen kann. Der Code kompiliert, aber aus irgendeinem Grund erkennt er nicht die Änderung des Werts der übergeordneten Variablen. Hier ist die Elternklasse:Kind Zugriff auf Variablen des Elternteils
package
{
import flash.display.MovieClip;
import flash.events.*;
public class Game extends MovieClip
{
// variables etc
public var leftArrow, rightArrow;
public function Game()
{
// add an event listener to spawn a new ship every frame
addEventListener(Event.ENTER_FRAME, loop);
addEventListener(KeyboardEvent.KEY_DOWN,keyPressedDown);
addEventListener(KeyboardEvent.KEY_DOWN,keyPressedUp);
}
function keyPressedDown(event:KeyboardEvent)
{
if (event.keyCode == 37) // left arrow
{
leftArrow = true;
}
if (event.keyCode == 39) // right arrow
{
rightArrow = true;
}
}
function keyPressedUp(event:KeyboardEvent)
{
if (event.keyCode == 37) // left arrow
{
leftArrow = false;
}
if (event.keyCode == 39) // right arrow
{
rightArrow = false;
}
}
function loop(e:Event)
{
// only spawn a ship if there are less than 10 already on screen
if (numChildren < 10)
{
// make a new instance of the Ship class
var s = new Ship();
// add the ship to the display list
addChild(s);
// position and rotate the ship
s.x = Math.random() * stage.stageWidth;
s.y = Math.random() * stage.stageHeight;
s.rotation = Math.random() * 360;
}
}
}
}
Und hier ist das Kind Klasse:
package
{
import flash.display.MovieClip;
import flash.events.*;
import flash.utils.getTimer;
public class Turret extends MovieClip
{
public function Turret()
{
addEventListener(Event.ENTER_FRAME, update);
}
function update(e:Event)
{
// make the turret move with key presses
if (MovieClip(parent).leftArrow)
{
trace("Made it here");
this.rotation += 5;
}
if (MovieClip(parent).rightArrow)
{
this.rotation += 5;
}
}
}
}
Sind Sie sicher, dass etwas hat Fokus (versuchen 'stage.focus = this' in deinem Game-Klassenkonstruktor) und dass deine leftArrow & rightArrow vars tatsächlich auf die Tastatur reagieren? – BadFeelingAboutThis