![]() |
|
||||||||||
|
|||||
|
Регистрация: May 2011
Сообщений: 76
|
Вопрос касается объявления кастомных неймспесов, создания методов с ними и их переопределение.
Сразу оговорюсь что пользуюсь intellij idea 12+. Я могу определить методы в своем неймспесе и их использовать внутри класса, в котором они определены, но не могу переопределить их в дочерних классах, так как на них ругается компилятор(синтаксический анализор идеи молчит). Для примера я привел небольшую иерархию как она не работает. Есть такая структура: package test { public class namespace_1 { public namespace namespace_1; } } package test { public class namespace_2 { public namespace namespace_2; } } package test { import test.namespace_1; import test.namespace_2; public class Class1 { private var mode:Namespace = namespace_1;// понятное дело что в других методах присвоить можем что хотим. .... protected function action():void { .... mode::foo(); } namespace_1 function foo():void { trace("foo in NS1 operating"); } namespace_2 function foo():void { trace("foo in NS2 operating"); } } } package test { import test.namespace_1; import test.namespace_2; //uses protected function action() from Class1. public class Child1 extends Class1 { // COMPILE TIME ERROR:: Namespace was not found or is not a compile-time constant. // If i define use namespace namespace_1 before class declaration error changes to // Method marked override must override another method. override namespace_1 function foo():void { trace("foo from Child1 in NS1 operating"); } } } package test { import test.namespace_1; import test.namespace_2; //uses protected function action() from Class1. public class Grandchild1 extends Child1 { // COMPILE TIME ERROR:: Namespace was not found or is not a compile-time constant. // If i define use namespace namespace_1 before class declaration error changes to //Method marked override must override another method. override namespace_1 function foo():void { trace("foo from Grandchild1 in NS1 operating"); } } } Пожалуйста помогите разобратся с этой темой, кто шарит. З.Ы. Я перешарил весь форум в поисках ответа или годного примера, но его не нашел. Помню был тред в котором обсуждалась возможность перегрузки методов во флеше и кто-то хвастался как он ловко запилил неймспейсы для использования "своей перегрузки" в своей игрушке( фича изменяла режим работы какой-то внутриигровой хреновины: нормальный и турбо) В общем если кто-то это помнит или встречал буду очень признателен за ссылку. Последний раз редактировалось searinox; 01.08.2013 в 23:35. |
![]() |
Часовой пояс GMT +4, время: 17:07. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| AS3 , namespace , головоломка. |
|
|