![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Dec 2008
Адрес: Апатиты
Сообщений: 13
|
только не пинайте, просто пытаюсь разобратся в as3.
в общем есть базовый класс Root, в нем создаются объекты класса Ball. в классе Болл есть функция двигающая эти кружки вниз, при этом если круг вышел за определенную точку, то он перемещается наверх. по идее если достигнута крайняя точка, то наверх должен перемещатся только один круг, а на деле перемещаются все вместе Root.as package { import flash.display.MovieClip; import Ball; public class Root extends MovieClip { private var ball:Ball; function Root() { var num:uint = Math.random() * 20 + 30; for (var i:uint = 1; i < num; i++) { ball = new Ball(2); addChild(ball); } } } } package { import flash.display.*; import flash.events.Event; class Ball extends MovieClip { private var ball:Shape; function Ball(radius:Number) { ball = new Shape(); ball.graphics.beginFill(0xFF6666); var bx:uint = Math.random() * 550; var by:uint = Math.random() * 100; ball.graphics.drawCircle(bx, -by, radius); ball.graphics.endFill(); addChild(ball); addEventListener(Event.ENTER_FRAME, moveBall); } private function moveBall(event:Event):void { y += height; if (y > 400) { y = 0; } } } } |
|
|||||
|
Регистрация: Jan 2008
Сообщений: 221
|
Цитата:
|
|
|||||
|
Регистрация: Nov 2008
Сообщений: 65
|
Потому что у Вас все клипы начинают с координат (0,0). Вы задаёте координаты вложенным фигурам а не клипам.
И вообще, лучше так не писать. Если вам необходимо что-то рисовать - рисуёте прямо у клипа, зачем для этого создавать Shape. Если Вам не нужны кадры анимации, то используйте Sprite, а не MovieClip (или тот же Shape, если нету вложенных клипов). Так должно работать: package { import flash.display.Shape; import flash.events.Event; public class Ball extends Shape { public function Ball(radius:Number):void { graphics.beginFill(0xFF6666); graphics.drawCircle(0, 0, radius); graphics.endFill(); x = Math.random() * 550; y = - Math.random() * 100; addEventListener(Event.ENTER_FRAME, moveBall); } private function moveBall(event:Event):void { y += height; if (y > 400) y = 0; } } } Последний раз редактировалось ZlPredator; 14.12.2008 в 10:21. |
|
|||||
|
Регистрация: Dec 2008
Адрес: Апатиты
Сообщений: 13
|
ZlPredator, спс выручил
|
![]() |
![]() |
Часовой пояс GMT +4, время: 23:15. |
|
|
« Предыдущая тема | Следующая тема » |
|
|