![]() |
|
||||||||||
|
|||||
|
Дано: пакеты core, core.subPackage.
Задача: создать namespace который видно внутри core и core.subPackage и больше нигде. Пробовал создать свой namespace и передать его параметром: package core { import core.subPackage.SubPackageClass; /** * ... * @author vaukalak */ public class NameSpaceTest { internal namespace fullPackage; public function NameSpaceTest() { use namespace fullPackage; var sp:SubPackageClass = new SubPackageClass(); sp.np = fullPackage; } fullPackage static function _lala():void { trace(1); } } } package core.subPackage { import core.NameSpaceTest; /** * ... * @author inovatio */ public class SubPackageClass{ private var _np:Namespace; public function SubPackageClass() { } public function set np(n:Namespace):void { _np = n; use namespace n as Namespace; (NameSpaceTest["_lala"] as Function).call(); } } }
__________________
ranga |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Может все-таки use уберем? Плюс скорее:
package core.sub { import core.CoreClass; /** * @author etc * @version 1.0 * @playerversion Flash 9 * @langversion 3.0 */ public class SubClass { public function SubClass() { super(); } /** * @private */ private var _ns:Namespace; public function set ns(value:Namespace):void { if (this._ns === value) return; this._ns = value; (CoreClass[new QName(this._ns, 'test')] as Function)(); CoreClass.value::test(); } } } package core { import core.sub.SubClass; /** * @author etc * @version 1.0 * @playerversion Flash 9 * @langversion 3.0 */ public class CoreClass { public function CoreClass() { super(); var s:SubClass = new SubClass(); s.ns = sub; } private namespace sub; sub static function test():void { trace('Sub test'); } } } |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Ну QName как минимум для случаев, когда вот так просто по неймспейсу не обратишься.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 13:28. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| namespace |
|
|