AS3 Как получить доступ к мувиклипу на основной временной шкале из мувиклипа? - PullRequest
0 голосов
/ 06 марта 2012

Работа на флеш-карте типа RPG, и я должен иметь возможность управлять текстовым полем из нескольких мест. То, что доставляет мне неприятности, - это инвентарь. Мне нужно иметь доступ к текстовому полю с экземпляром «statusWindow» из клипа инвентаря (имя экземпляра «инвентарь»), поэтому при наведении курсора на элемент в мувиклипе он меняет окно состояния на сцене.

В этом случае я хочу навести курсор мыши на inventory.invHealth с основной временной шкалы, чтобы получить отображение. itemName и itemProps - это строки, содержащие информацию об элементе.

Я попробовал следующее, но это дало мне "возможно неопределенную" ошибку.

    invHealth.addEventListener(MouseEvent.MOUSE_OVER, itemStats);

    function itemStats(e:Event):void
    {
        root.statusWindow.text = itemName+"\n"+itemProps;
    }

Я пока не очень хорошо разбираюсь в AS3, поэтому, если бы вы также могли объяснить свой код, когда публикуете его - хотя большинство людей обычно так и делают - я был бы очень признателен. Заранее спасибо!

1 Ответ

0 голосов
/ 06 марта 2012

Я бы посоветовал вам хранить информационные данные в объекте класса;этот объект должен быть доступен как с помощью statusWindow, так и с инвентарного клипа.Таким образом, нет необходимости «читать» текстовое поле, у вас будут разные взгляды на одни и те же данные.Например:

public class GlobalVars
{
    public static var health:Number;
} 

Конечно, вы можете создать более структурированные информационные данные, например:

 public class Item
 {
      public function Item(setname:String)
      {
         name=setname;
         health = 100;
         quantity = 0;
      }

      private var name:String;
      private var health:Number;
      private var quantity:Number;
 } 

 var inventory:Array = new Array();
 inventory.push(new Item("hammer"));
 inventory.push(new Item("gun"));
 inventory.push(new Item("sponge"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...