Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 14.12.2008, 01:36
r4v3r вне форума Посмотреть профиль Отправить личное сообщение для r4v3r Найти все сообщения от r4v3r
  № 1  
Ответить с цитированием
r4v3r
 
Аватар для r4v3r

Регистрация: Dec 2008
Адрес: Апатиты
Сообщений: 13
По умолчанию отдельное управление клипом

только не пинайте, просто пытаюсь разобратся в as3.
в общем есть базовый класс Root, в нем создаются объекты класса Ball. в классе Болл есть функция двигающая эти кружки вниз, при этом если круг вышел за определенную точку, то он перемещается наверх.
по идее если достигнута крайняя точка, то наверх должен перемещатся только один круг, а на деле перемещаются все вместе

Root.as
Код AS3:
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);
			}
		}
	}
}
Ball.as

Код AS3:
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;
			}
		}
	}
}

Старый 14.12.2008, 05:18
Nemo_c вне форума Посмотреть профиль Отправить личное сообщение для Nemo_c Найти все сообщения от Nemo_c
  № 2  
Ответить с цитированием
Nemo_c
 
Аватар для Nemo_c

Регистрация: Jan 2008
Сообщений: 221
Цитата:
по идее если достигнута крайняя точка, то наверх должен перемещатся только один круг, а на деле перемещаются все вместе
А где в коде воплощена эта идея? не наблюдаю.

Старый 14.12.2008, 10:19
ZlPredator вне форума Посмотреть профиль Отправить личное сообщение для ZlPredator Найти все сообщения от ZlPredator
  № 3  
Ответить с цитированием
ZlPredator

Регистрация: Nov 2008
Сообщений: 65
Потому что у Вас все клипы начинают с координат (0,0). Вы задаёте координаты вложенным фигурам а не клипам.

И вообще, лучше так не писать. Если вам необходимо что-то рисовать - рисуёте прямо у клипа, зачем для этого создавать Shape. Если Вам не нужны кадры анимации, то используйте Sprite, а не MovieClip (или тот же Shape, если нету вложенных клипов).

Так должно работать:

Код AS3:
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.
Старый 14.12.2008, 17:42
r4v3r вне форума Посмотреть профиль Отправить личное сообщение для r4v3r Найти все сообщения от r4v3r
  № 4  
Ответить с цитированием
r4v3r
 
Аватар для r4v3r

Регистрация: Dec 2008
Адрес: Апатиты
Сообщений: 13
ZlPredator, спс выручил

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:15.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 23:15.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.