![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jul 2011
Сообщений: 18
|
Нужно следующее:
в первом кадре появляется круг со случайными координатами центра; во втором кадре добавляется ещё один такой же круг, тоже со случайными координатами; в третьем кадре - ещё один и т.д. Ясное дело, нужен ActionScript, иначе случайных координат не получить. Программно круги не создаются, можно программно создавать только кривые и заливки (lineStyle, curveTo, beginFill, endFill). Но в моём случае создавать столько кривых и заливок - верный способ всё повесить. Может быть, можно программно создавать экземпляры символа? Если можно, то как?
__________________
Kiss my AS! Последний раз редактировалось brodotsky; 05.08.2011 в 17:46. |
|
|||||
|
Взято отсюда: http://www.actionscript.org/forums/s...d.php3?t=30328
MovieClip.prototype.drawCircle = function(center, rad, fillColor, fillAlpha, lineColor, lineAlpha, lineWidth) { trace(center[0]+", "+center[1]+", "+rad+", "+fillColor+", "+fillAlpha+", "+lineColor+", "+lineAlpha+", "+lineWidth); controlOffset = Math.sin(24*Math.PI/180)*rad; if (!fillColor) { // if fillColor is not specified black is assigned @ alpha 100% fillColor = 0x000000; fillAlpha = 100; } if (lineColor) { // if lineColor is specified a line is drawn, if not not // if lineWidth is not specified width is set @ 1 pixel // if lineAlpha is not specified alpha is set @ 100% lineStyle(lineWidth+1*(lineWidth == undefined), lineColor, lineAlpha+100*(lineAlpha == undefined)); } beginFill(fillColor, fillAlpha); moveTo(center[0], center[1]-rad); curveTo(center[0]+controlOffset, center[1]-rad, center[0]+Math.cos(45*Math.PI/180)*rad, center[1]-Math.sin(45*Math.PI/180)*rad); curveTo(center[0]+rad, center[1]-controlOffset, center[0]+rad, center[1]); curveTo(center[0]+rad, center[1]+controlOffset, center[0]+Math.cos(45*Math.PI/180)*rad, center[1]+Math.sin(45*Math.PI/180)*rad); curveTo(center[0]+controlOffset, center[1]+rad, center[0], center[1]+rad); curveTo(center[0]-controlOffset, center[1]+rad, center[0]-Math.cos(45*Math.PI/180)*rad, center[1]+Math.sin(45*Math.PI/180)*rad); curveTo(center[0]-rad, center[1]+controlOffset, center[0]-rad, center[1]); curveTo(center[0]-rad, center[1]-controlOffset, center[0]-Math.cos(45*Math.PI/180)*rad, center[1]-Math.sin(45*Math.PI/180)*rad); curveTo(center[0]-controlOffset, center[1]-rad, center[0], center[1]-rad); endFill(); }; _root.drawCircle([150, 150], 100, 0xFF0000, 100, 0x0000FF, 100, 4);
__________________
Кодинг, багинг, алгоритминг. me @ |
|
|||||
|
Регистрация: Jul 2011
Сообщений: 18
|
Спасибо - работает, и быстро работает!
В порядке издевательства я попросил Flash нарисовать 10 тысяч кругов со случайными координатами центра и случайным цветом: for (I=0;I<10000;I++) {center=[Stage.width*Math.random (),Stage.height*Math.random ()]; rad=10; fillColor=(255*Math.random ()) +((255*Math.random ())<<8) +((255*Math.random ())<<16); fillAlpha=100; lineColor=0; lineAlpha=0; lineWidth=0; _root.drawCircle (center,rad, fillColor,fillAlpha, lineColor,lineAlpha,lineWidth);} Flash MX зависает всего на 1,5 минуты (при этом четырежды предлагает прервать процесс). И это на моём-то старом Селероне! Интересно, что бы было, если бы автором Flash была Microsoft? А всё-таки непонятно, почему ни Macromedia, ни Adobe не сделали во Flash встроенный метод drawCircle?
__________________
Kiss my AS! Последний раз редактировалось brodotsky; 05.08.2011 в 21:38. |
|
|||||
|
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
Цитата:
![]()
__________________
Загружаем картинки, минуя ошибки безопасности |
|
|||||
|
Регистрация: Jul 2011
Сообщений: 18
|
В AS3 есть drawCircle?
Значит, только Macromedia не додумалась. А Adobe, съев Macromedia, сразу додумалась. Похоже, в случае с Flash новее означает лучше (это применимо далеко не ко всем программам). Уговорили, перейду на AS3, только чуть-чуть позже. Вообще, похоже, основное назначение раздела AS 1.0/2.0 - агитировать за AS 3.0.
__________________
Kiss my AS! Последний раз редактировалось brodotsky; 05.08.2011 в 21:39. |
|
|||||
|
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
AS 2.0 прекратил свое развитие сразу после выпуска AS3 в свет. А было это в 2005-2007, точно не помню.
__________________
Загружаем картинки, минуя ошибки безопасности |
![]() |
![]() |
Часовой пояс GMT +4, время: 20:33. |
|
|
« Предыдущая тема | Следующая тема » |
|
|