Actionscript 3 我应该将已编辑的容器类放置在哪里?

Actionscript 3 我应该将已编辑的容器类放置在哪里?,actionscript-3,flex3,flex4,adobe,Actionscript 3,Flex3,Flex4,Adobe,我想修改一门手风琴课以适应我的需要 我不想简单地扩展Accordion,而是想将整个类作为一个开始复制并粘贴到src文件夹中,新的类名为“MyAccordion”;为了获得最大的自由(我假设) 但是,遇到了几个问题。对于“include../core/Version.as”;“错误,我已经用显式版本静态常量字符串替换了它,从而解决了这个问题。但是对于继承所导致的问题,例如AccordionHeader等,我发现在执行流时需要编辑的文件太多了。我怀疑我误解了编辑这门课的全部逻辑 有人能帮我一下吗?

我想修改一门手风琴课以适应我的需要

我不想简单地扩展Accordion,而是想将整个类作为一个开始复制并粘贴到src文件夹中,新的类名为“MyAccordion”;为了获得最大的自由(我假设)

但是,遇到了几个问题。对于“include../core/Version.as”;“错误,我已经用显式版本静态常量字符串替换了它,从而解决了这个问题。但是对于继承所导致的问题,例如AccordionHeader等,我发现在执行流时需要编辑的文件太多了。我怀疑我误解了编辑这门课的全部逻辑


有人能帮我一下吗?可能是我阅读的一些参考资料,甚至只是我搜索的一些关键字。提前感谢。

好吧,由于您发现的所有原因,在使用类似这样的“样板”代码时,您实际上没有灵活性。用于正确修改现有类:

package com.yourSite.src
{
    public class Foo
    {
         public function Foo
         { 
         }

         public function foo():void
         {
            trace("foo");
         }
     }
}


package com.yourSite.src
{
     public class Bar extends Foo
     {

          public function Bar
          {

          }

          override public function foo():void
          {
              trace("bar");
           }
      }
}
因此,编写一个扩展accordio的类,并重写您希望以不同方式工作的任何内容。您可能需要的任何其他功能都可以根据需要添加。OOP 101:D

查看上面的链接,了解更具凝聚力的讨论


干杯

好吧-由于您发现的所有原因,您实际上在利用像这样的“样板”代码时没有灵活性。用于正确修改现有类:

package com.yourSite.src
{
    public class Foo
    {
         public function Foo
         { 
         }

         public function foo():void
         {
            trace("foo");
         }
     }
}


package com.yourSite.src
{
     public class Bar extends Foo
     {

          public function Bar
          {

          }

          override public function foo():void
          {
              trace("bar");
           }
      }
}
因此,编写一个扩展accordio的类,并重写您希望以不同方式工作的任何内容。您可能需要的任何其他功能都可以根据需要添加。OOP 101:D

查看上面的链接,了解更具凝聚力的讨论


干杯

非常感谢Bosworth,我以前尝试过扩展Accordion,但发现无法覆盖私有函数,例如acordion.as中的commitSelectedIndex()。有没有办法覆盖私有函数?这就是为什么我有了从复制粘贴类开始的想法。我不确定这是我的问题还是根本不是我能做的。方法必须重写其超类的公共可访问方法。多读一些。正如本文所指出的,“…任何标记为private的方法在其自己的类之外都是不可见的。您不能重写私有方法,因为您没有访问它们的权限。因此,如果您希望子类重新定义父类私有方法的功能,您可以定义新的私有方法。“当然可以,如果你还有其他问题,请告诉我;”非常感谢Bosworth,我以前尝试过扩展Accordion,但发现无法覆盖私有函数,例如acordion.as中的commitSelectedIndex()。有没有办法覆盖私有函数?这就是为什么我有了从复制粘贴类开始的想法。我不确定这是我的问题还是根本不是我能做的。方法必须重写其超类的公共可访问方法。多读一些。正如本文所指出的,“…任何标记为private的方法在其自己的类之外都是不可见的。您不能重写私有方法,因为您没有访问它们的权限。因此,如果您希望子类重新定义父类私有方法的功能,您可以定义新的私有方法。“当然可以,如果你还有其他问题,请告诉我;”