Я новичок в Flex и Cairngorm.While Я использую ServiceLocator, я столкнулся с проблемой: Ошибка: C0001E: может быть только один экземпляр ServiceLocator инстанцирован.Ошибка Flex и Cairngorm: C0001E: может быть создан только один экземпляр ServiceLocator
Мой код выглядит так:
В Serives.mxml:
<cairngorm:ServiceLocator xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:cairngorm="com.adobe.cairngorm.business.*">
<mx:HTTPService id="statistServ"
url="rooms.xml"
showBusyCursor="true"
method="POST"
resultFormat="array"/>
В Delegate.as, у меня есть фрагменты кода:
this.service = ServiceLocator.getInstance().getHTTPService(”statistServ”);
В main.xml , фрагменты наподобие:
<business:Service id="service" />
это замечательное сообщение об ошибке появляется в тот момент, когда я загружаю второй экземпляр некоторого модуля, который требует httpservice.
Есть ли способ решить эту проблему без перехода на другую платформу?
С наилучшими пожеланиями,
Шо из Китая
Спасибо, Стиглер! Вы правы! В моем модуле у меня есть в Main.mxml. Каждый раз, когда я открываю модуль, я фактически создаю экземпляр serviceLocator. Как известно, ServiceLocator проверяет статическую переменную, чтобы увидеть, был ли экземпляр уже создан в его конструкторе. Но я думаю, что конструктор ServiceLocator должен быть закрытым, но существующим AS3 .0 не позволяет. Итак, есть ли способ решить это? Поскольку модуль используется довольно часто. Большое спасибо! С уважением, Shuo –
Shuo
Еще раз спасибо, Стиглер! Я решил свои проблемы, разместив внутри основного MXML приложения, а не модуля MXML. Вы очень поможете! Удачи! Shuo из Китая –
Shuo
Я рад, что смогу помочь. Если вы почувствуете, что этот вопрос был полностью отвечен, пожалуйста, продолжайте и отметьте ответ как принятый. – Stiggler