PDA

Просмотр полной версии : Ошибка при присваиванеи Namespace.


incvizitor
15.03.2012, 13:10
Есть код:


package {
import flash.display.Sprite;

public class Main extends Sprite {

use namespace $custom;
private namespace $internal = $custom;

public function Main():void {
}

}

}


и сторонний файл:


package {
public namespace $custom = "someURI";
}


Выбрасывает следущую ошибку:

Error: A namespace initializer must be either a literal string or another namespace.


Но ведь по сути я и присваиваю значение другого неймспейса. Если кто в теме, объесните пожалуйста почему такой код не работает..

Genzo
15.03.2012, 13:18
попробуйте
public namespace $custom = new Namespace("someURI");

incvizitor
15.03.2012, 13:26
Сори, я ж не объяснил где ошибка падает))


public namespace $custom = "someURI";


Тут все ок, ошибка в следующих строках:


use namespace $custom;
private namespace $internal = $custom;

Genzo
15.03.2012, 13:29
private var $internal:Namespace = flash_proxy;
Так работает.

incvizitor
15.03.2012, 13:35
Конечно работает, мы Вы же в рантайме присаиваете, это же переменная а не namespace. У меня вот так тоже работает:


use namespace $custom;
private var $internal = $custom;


Только смысл теряется, так как на этапе компиляции уже не используешь...

$internal var test:String;

выдает:

Error: Namespace was not found or is not a compile-time constant.


И в этом случае компилятор прав.