2015-01-20 5 views
0

В приложении AIR Mobile У меня есть этот код:Доступ к "глобальной" вар в ActionScript 3.0 - приложения AIR

import character.*; 

var player_1 = new characterObject("Player 1"); 
var player_2 = new characterObject("Player 2"); 

В классе пакета:

package character { 

    public class characterObject extends MovieClip { 
    public var characterName: Number; 
    public var playerCounter: Number = 0; 

     public function characterObject(myName: String) { 
      characterName = myName; 
      playerCounter++; 
     } 

    } 

Могу ли я получить доступ к player_1 .playerCounter собственность внутри player_2 объект istance? мне нужно increes значение игроков только если total_player (а вар, что я хочу создать в виде суммы player_1.playerCounter + player_2.playerCounter + player_n.playerCounter ...) является < из х.

ответ

0

Плохая идея.

Yo можно попробовать следующую вещь

package character { 
    public class CharactersModel extends Object{ 
     private var _chars : Array = []; 
     public function addCharacter(char : characterObject) { 
     _chars.push(char); 
     } 

     public function getChars() : Array { 
      return _chars; 
     } 

     public function getCharByName(name : String) : characterObject { 
     //select from array and return 
     //use it instead of null 
     return null; 
     } 
    } 
} 

и обновить characterObject как этот

private var _model : CharactersModel; 
public function characterObject(model : CharactersModel ,myName: String) { 
    _model = model;    
    characterName = myName; 
    playerCounter++; 
    model.addCharacter(this); 
    } 

    public function getOtherChar(name : String) { 
    return _model.getCharByName(name); 
    } 

и, наконец,

import character.*; 
var model : CharactersModel = new CharactersModel(); 
var player_1 = new characterObject(model ,"Player 1"); 
var player_2 = new characterObject(model ,"Player 2"); 
0

Я бы создал вектор для хранения экземпляров символов вне класса characterObject. Затем вы можете ссылаться на длину вектора для текущей суммы.

var characters:Vector.<characterObject> = new Vector.<characterObject>(); 

characters.push(new characterObject("Player 1")); 
characters.push(new characterObject("Player 2")); 

trace(characters.length); // 2 
+0

Ok, но я могу получить доступ к вектору внутри characterObject? Потому что мне нужно изменить состояние кнопки (ADD/REMOVE символов) внутри нее, когда общее количество игроков равно числу. –

+0

Я думаю, было бы лучше, если бы менеджер или владелец персонажей следил за тем, сколько их было. Затем вы можете обновить состояние каждого из них по своему усмотрению (возможно, общедоступный метод для символа, который принимает число при добавлении или удалении, которое вы просматриваете и вызываете на каждом из них). – ozmachine

+0

Хорошая идея, но как ?! –

Смежные вопросы