Где разместить класс отредактированных контейнеров? - PullRequest
0 голосов
/ 21 марта 2011

Я хотел бы изменить класс Accordion в соответствии со своими потребностями.

Вместо простого расширения Accordion, я хотел бы скопировать и вставить весь класс как начало, с новым именем класса "MyAccordion"в папку src;чтобы получить максимальную свободу (я предполагаю).

Однако возникли некоторые проблемы.Для "include" ../core/Version.as ";"Ошибка, которую я решил, заменив ее явной версией статической константной строки.Но для проблем, связанных с наследованием, например, AccordionHeader и т. Д., Я обнаружил, что при переходе по потоку будет слишком много файлов для редактирования.Я подозреваю, что неправильно понимаю всю логику редактирования класса.

Кто-нибудь мне поможет?Может быть, это какая-то ссылка для чтения или даже просто ключевые слова для поиска.Заранее спасибо.

1 Ответ

3 голосов
/ 21 марта 2011

Что ж, по всем причинам, которые вы открыли, у вас на самом деле нет гибкости при использовании подобного «стандартного» кода.Используйте Extend and Override для правильного изменения существующих классов:

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

Итак, напишите класс, который расширяет Accordion, и переопределите все, что вы хотите работать по-другому.Любая другая функциональность, которая может вам понадобиться, может быть добавлена ​​по мере необходимости.ООП 101: D

Проверьте ссылку выше для более сплоченного обсуждения.

Ура!

...