| Anbu51Ru |
12.09.2016 16:42 |
Работа с классами
Всем привет, Помогите пожалуйста разобраться, как правильно работать с классами. В классе 2, я создаю игровую энергию, потом в добавляю ее в 1 первый класс. Все работает и отображается. Дальше я создаю функцию energyClik, которая по идеи должна при клике умешать переменную numEnergy на один и она уменьшает, НО она связана с динамическим текстом energyText, значит текст тоже должен уменьшатся с 5 до 4 и т.д. но он не уменьшается. В этом вся проблема.
Код AS3:
// Класс 1
package com.content.menu
{
import flash.display.*;
import flash.filters.*;
import flash.events.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import com.content.points.*;
public class MenuGompany extends GameScreen
{
public static var _this:*;
private var energy:EnergyGame;
public function MenuGompany()
{
_this = this;
energy = new EnergyGame();
//_this.energyText.text = numEnergy.toString();
_this.addChild(energy);
}
}
}
Код AS3:
// Класс 2
package com.content.points
{
import flash.display.*;
import flash.filters.*;
import flash.events.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import com.content.menu.*;
public class EnergyGame extends IconEnergy
{
private var _this:*;
public static var numEnergy: Number = 5;
public function EnergyGame()
{
_this = this;
_this.x = 300;
_this.y = 3;
_this.energyText.text = numEnergy.toString(); // вот тут проблема
_this.addEventListener(Event.ADDED_TO_STAGE, addThis);
_this.addEventListener(MouseEvent.CLICK, energyClik);
}
private function addThis(e: Event): void
{
_this.removeEventListener(Event.ADDED_TO_STAGE, addThis);
}
private function energyClik(e: MouseEvent): void
{
trace('click', numEnergy);
numEnergy--;
}
}
}
|