И, вы можете создать анаконду ENV с python 3.6 для экспериментов и см. https: // anaconda. org / anaconda / numpy ?
Может быть, доступ из другой среды Anaconda к Pycharm решит проблему или станет разъяснением истинного источника проблемы?
Извините для возможно неточной грамматики. Я сделал все возможное:)
Вот универсальный способ удалить слушателей события, которых я использовал на производственных проектах
addEventListener
(
Event.ACTIVATE,
function(event:Event):void
{
(event.target as EventDispatcher).removeEventListener(event.type, arguments.callee)
}
)
Я не уверен, будет ли это работать, но его стоящее того, чтобы попытаться:
root.removeEventListener("click", arguments.callee );
[еще 113] информация об этом может быть найдена Flex Ленг касательно
Можно думать о функции () ключевое слово как конструктор, создавая новый объект (закрытие) каждый раз. Поэтому, если Вы создаете закрытие только для в качестве параметра и не сохраняете ссылку нигде, нет никакого способа овладеть "тем же" закрытием где-то в другом месте.
очевидное решение - то, что Вы не любите, определяя функцию перед использованием его. Конечно, это может все еще быть полное закрытие и не только 'подобная помехам' функция. просто определите его в контексте, который Вы хотите и присваиваете его локальной переменной.
Просто примечание стороны по Вашему коду, с которым я столкнулся в Flex В Недельном наборе учебных руководств на веб-сайте Adobe. Там, они сказали, что необходимо всегда использовать константы для типов событий, а не строки. Тем путем Вы получаете защиту опечатки. Если Вы заставляете опечатку в конечном счете ввести строку (как, говорят "clse"), Ваш обработчик событий будет зарегистрирован, но конечно никогда не вызывал. Вместо этого используйте Событие. ЗАКРОЙТЕСЬ, таким образом, компилятор найдет опечатку.
Это слишком много не отличается, чем использование определенной функции, но возможно это удовлетворит Ваши потребности. Помните, что Функции являются первоклассными объектами в ActionScript, и можно сохранить и раздать их как переменные.
protected function addListener() { m_handler = function(in_event:Event) { removeEventListener(MouseEvent.CLICK, m_handler); m_handler=null} addEventListener(MouseEvent.CLICK, m_handler) } protected var m_handler:Function
Я не знаю то, что Вы на самом деле делаете, но в этом конкретном примере, возможно, у Вас могла быть _clickEnabled глобальная переменная.
Затем в обработчике событий Вы просто проверяете _clickEnabled, и если его ложь Вы всего return
сразу.
Затем можно включить и отключить полное событие, не отсоединяясь и повторно прикрепляя его.
Я обнаружил, что много занимаюсь этим, поэтому попробовал это. Кажется, все работает нормально.
addSelfDestructiveEventListener('roomRenderer', 'complete', trackAction, 'floorChanged');
private function addSelfDestructiveEventListener(listenee:*, event:String, functionToCall:Function, StringArgs:String):void
{
this[listenee].addEventListener(event, function(event:Event):void
{
(event.target as EventDispatcher).removeEventListener(event.type, arguments.callee);
functionToCall(StringArgs);
})
}
Я иногда использую вот это:
var closure:Function = null;
root.addEventListener("click",
closure = function ()
{
navigateToURL(ClickURLRequest,"_self");
});
root.removeEventListener("click", closure);