![]() |
Критическая ошибка при вызове Graphics.drawPath()
Здравствуйте, у меня вопрос по Graphics.drawPath(). Писал когда-то работоспособный простенький редактор сплайнов, отрисовку производил с помощью Graphics.drawGraphicsData(). Выглядело это так:
Код AS3:
Сейчас я произвожу модификацию сплайна или шейпа (вернее, их graphics) с помощью последовательных вызовов lineStyle(), beginFill(), endFill() из других объектов. Между ними я планировал вставлять вызовы drawPath(). Вот "рабочая лошадка": Код AS3:
Код AS3:
|
>>плейер выдает критическую ошибку и убивается насмерть.
А текст выводящейся ошибки (секрет) или вы считаете, что это неважно, потому что я сначала смотрю на текст ошибки, а потом думаю, че с ней делать. Как правило плеер сам говорит вам в тексте ошибки, чего ему не нравится. |
Вдумчиво прочитайте вот эту строчку:
Код AS3:
|
Вложений: 1
Прекрасная, на мой взгляд, строчка :). Если бы вы мне еще подсказали, как нетипизированный "вход" с предыдущего звена проверить на наличие у него свойства graphics, я был бы очень признателен. Я, сколько ни читал референс, другого способа определить это не нашел.
@Alex Lexcuk: во вложениях вам и текст ошибки. Ну а все же, по сабжу? |
>>Ну а все же, по сабжу?
Пожалуйста дайте текст критической ошибки... |
To Alex Lexcuk: между плеером и системой - среда исполнения, поэтому ошибки, которые выдаются им в обычных условиях (просто при ачипятке в коде), у меня язык не повернется назвать критическими. Текст *критической* ошибки смотрите выше. Если не верите, вот ссылка, проверьте сами.
Слева ставите gc Sprite, справа от него - sp Polygon, снизу под ними обоими - gc GC+SP. Ставите полигону хотя бы одну точку, дважды кликаете по gc GC+SP. Все. |
>> Прекрасная, на мой взгляд, строчка
да... вот только там должно быть не логическое "и", а логическое "или"... только там весь код в таком же духе, типа круглое носим, квадратное катаем.. выражения внутри if() блока всегда приводятся к Boolean в AS3, поэтому писать if (someObject == null) бессмысленно т.как вы будете Boolean к Boolean кастовать в таком случае, переменные нельзя объявлять внутри if() / for() и т.п. блоков, использовать uint для итератора бессмысленно, если значений никогда не будет больше 0x7FFFFFFF (т.как он медленнее), проверять длинну массива в каждой итерации при том, что вы не изменяете ее - это тоже сильно... Ну и плюс ко всему всунуть значения констант вместо ссылок на них - тоже как бы... Что касается ошибки - поставьте не бета плеер (10.0.28, а лучше 10.0.32). EDIT: А хотя нет, с условием погарячился - прошу прощения. Я не понял сразу, что оно должно делать. Но все равно если делать по-нормальному, то _output должен был быть типа Graphics, ну или в самом худшем случае: Код AS3:
|
Цитата:
|
@wvxvw: ну, в том коде как раз и должно стоять логическое И: если объект - Спрайт, то он не будет Шейпом (|| выдаст false), если он Шейп, Спрайтом ему не быть (опять false), и тело выполняться не будет. Во всем остальном - спасибо за ценную инфу :), особенно по тормозности uint, я этого действительно не знал.
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
@Alex Lexcuk: ссылку поправил, так, на всякий случай. |
wvxvw, почему нельзя переменные объявлять в for()?
то есть Код AS3:
Код AS3:
|
| Часовой пояс GMT +4, время: 14:51. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.