【问题标题】:Access to "global" var in ActionScript 3.0 - AIR application在 ActionScript 3.0 - AIR 应用程序中访问“全局”变量
【发布时间】:2015-01-21 16:15:06
【问题描述】:

在 AIR Mobile 应用程序中,我有以下代码:

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_2 对象中的 player_1.playerCounter 属性吗? 只有在 total_player (我想创建为 player_1.playerCounter + player_2.playerCounter + player_n.playerCounter ...) 是 x

【问题讨论】:

    标签: class object air package


    【解决方案1】:

    坏主意。

    你可以试试下一个

    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");
    

    【讨论】:

      【解决方案2】:

      我会创建一个向量来保存 characterObject 类之外的字符实例。然后你可以参考当前数量的向量长度。

      var characters:Vector.<characterObject> = new Vector.<characterObject>();
      
      characters.push( new characterObject("Player 1") );
      characters.push( new characterObject("Player 2") );
      
      trace( characters.length ); // 2
      

      【讨论】:

      • 好的,但是我可以访问 characterObject 内部的向量吗?因为当玩家总数等于一个数字时,我需要更改其中按钮的状态(添加/删除字符)。
      • 我认为,如果角色经理或角色持有者密切关注有多少角色会更好。然后你可以根据需要更新每一个的状态(也许是一个字符上的公共方法,它在添加或删除一个数字时接受一个数字,你循环并调用每一个)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-18
      • 1970-01-01
      • 2018-01-14
      • 2014-11-10
      • 2015-07-28
      • 2012-10-08
      相关资源
      最近更新 更多