当前位置:  开发笔记 > 编程语言 > 正文

类型/类实例上的开关/案例?

如何解决《类型/类实例上的开关/案例?》经验,为你挑选了2个好方法。

我有一组不同的MovieClip:

Pink
Yellow
Red

我创建了一个项目

item = new Pink();
item = new Red();

等等...

如何编写一个开关盒来查看我有哪个MovieClip?

switch (item) {
 case Pink:
 // do something
 break;

 case Red:
 // do something
 break;
}

我只知道如何为字符串编写开关案例...



1> Dean North..:

您可以将类名作为字符串获取并按照通常使用此方法的方式进行切换...

switch (getQualifiedClassName(item)) {
 case "Pink":
 // do something
 break;

 case "Red":
 // do something
 break;
}

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/utils/package.html#getQualifiedClassName()



2> zzzzBov..:

简单回答:不要.

Pink并且RedColor其实如此做Color有一个函数:

interface IColor
{
  public function doSomething():void;
}

并具有PinkRed扩展功能:

class Pink extends MovieClip implements IColor
{
  ...
  public override function doSomething():void
  {
    //different code
  }
}

class Red extends MovieClip implements IColor
{
  ...
  public override function doSomething():void
  {
    //more different code
  }
}

然后在你的代码中你可以调用:

item.doSomething();

对于这两种情况,它都会做正确的事情.

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有