WedX - журнал о программировании и компьютерных науках

Почему этот метод вызывает сбой Flash, даже не вызывая его?

У меня есть класс под названием OESDatePicker, как следует из названия, это средство выбора даты.

В моем классе есть этот метод, который возвращает спрайт, содержащий названия дней недели:

private function DrawWeekDays():Sprite
    {
        var temp:Sprite = new Sprite();
        var wds:Array = new Array();
        var format:TextFormat = new TextFormat();
        format.font = "Tahoma";
        format.align = TextFormatAlign.CENTER;
        format.size = 11;
        format.color = 0xffffff;

        trace("HERE");
        /*for( var i:int = 0; i < 7; i++ )
        {
            trace(i);
            wds[i] = new TLFTextField();
            /*wds[i].width = CELL_SIZE;
            wds[i].defaultTextFormat = format;
            if( "en" == lang )
            {
                wds[i].text = day_names_en[i];
            }
            else
            {
                wds[i].text = day_names_fa[i];
            }
            //wds[i].y = 0;*/
            //wds[i].x = MARGIN + i * CELL_SIZE;
            //wds[i].text = "kkk";
            //temp.addChild(wds[i]);
        //}

        return temp;
    }

как видите, я закомментировал цикл for. Если я не прошиваю, произойдет сбой при запуске фильма. Дело в том, что директива trace("HERE") не выполняется. И самое странное, что я никогда не вызывал этот метод. Но если я удалю комментарии цикла for, flash рухнет, ничего не напечатав на выходе. Любые идеи????

РЕДАКТИРОВАТЬ: следующий код также имеет ту же проблему:

private function DrawWeekDays():Sprite
    {
        var temp:Sprite = new Sprite();
        var wds:Array = new Array();
        var format:TextFormat = new TextFormat();
        format.font = "Tahoma";
        format.align = TextFormatAlign.CENTER;
        format.size = 11;
        format.color = 0xffffff;

        trace("HERE");
        //for( var i:int = 0; i < 7; i++ )
        //{
            //trace(i);
            wds[0] = new TLFTextField();
            wds[0].width = CELL_SIZE;
            wds[0].defaultTextFormat = format;
            if( "en" == lang )
            {
                wds[0].text = day_names_en[0];
            }
            else
            {
                wds[0].text = day_names_fa[0];
            }
            wds[0].y = 0;
            wds[0].x = MARGIN + 0 * CELL_SIZE;

            temp.addChild(wds[0]);
        //}

        return temp;
    }
09.04.2013

  • Генерируется ли сообщение об исключении/ошибке, и вы можете поделиться им с нами? Вы используете отладочный Flash Player? 09.04.2013
  • Я полностью удалил цикл и попытался реализовать только одну итерацию (индекс = 0), но проблема осталась. Так что я предполагаю, что это что-то с wds[i] = new TLFTextField. Может быть, это? 09.04.2013
  • @Sunil: Спасибо за ответ. Нет, вообще ничего. Даже команды трассировки. Он просто падает. Например, когда он застрял в бесконечном цикле! 09.04.2013
  • О, и, кстати, Сунил, ДА, я использую отладочный флеш-плеер :D 09.04.2013
  • Это странно. Кажется, имеет смысл, что операторы трассировки никогда не выводятся, потому что функция не вызывается. Это тот момент, когда я попытался бы очистить свой проект (если бы я работал в Flash Builder, не уверен, что во Flash CS6 есть такая возможность). Вы всегда можете попробовать метод грубой силы, комментируя по одной строке за раз, чтобы увидеть, проливает ли это свет на то, какая строка вызывает проблему. Я чувствую себя глупо, говоря это, но перезагрузка также может быть в порядке :) Или в качестве теста попробуйте использовать обычное текстовое поле вместо TLF, возможно, в вашем проекте есть какое-то странное несоответствие с библиотеками или RSL. 09.04.2013
  • Я чувствую себя глупо, говоря это. Будет ли это немного глупее, чем функция, которая вызывает такую ​​​​проблему, даже не будучи вызванной? :D 09.04.2013
  • Я попробовал грубую силу, все было в порядке, пока я не достиг wds=new TLFTextField(), но в следующий раз, когда я запустил flash (CS5) и снова закомментировал ту строку, которая, как я думал, вызывала проблему, проблема все еще была!!! !!! Я сейчас взорвусь в любую секунду 09.04.2013
  • Во-первых, проверьте, компилируете ли вы в режиме выпуска. В этом режиме trace() функции никогда не выводят результат. Переключитесь в режим отладки и проверьте, появляются ли какие-либо выходные данные HERE. И да, я бы предпочел, чтобы вы использовали переменную var ttf:TLFTextField в цикле и wds.push(ttf); после всех настроек. 09.04.2013
  • Спасибо, Веспер. Нет, я уверен, что смогу вывести сообщения трассировки из других частей кода. Это был первый раз, когда я использовал этот метод включения классов, и я думаю, что он будет последним :D, я предпочитаю метод импорта. И спасибо за толчок, я не знал об этом :| Но теперь я знаю :) 10.04.2013

Ответы:


1

Что за чувак!!! Я использовал свойство класса в свойствах проекта, чтобы использовать класс. Я переместил класс в место, где я мог его импортировать, и все проблемы просто исчезли!

Спасибо за вашу помощь Сунил

09.04.2013
Новые материалы

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

ИИ в аэрокосмической отрасли
Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


Для любых предложений по сайту: wedx@cp9.ru