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

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

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

Регистрация: Oct 2013
Сообщений: 3
По умолчанию 2 вопроса по коду.

Я начинающий.Вопросы по коду

Код AS3:
import flash.events.Event;
 
var circle1 = {};
circle1.clip = krug1;
circle1.x = circle1.clip.x;
circle1.y = circle1.clip.y;
circle1.radius = circle1.clip.width/2;
circle1.xmov = 3;
circle1.ymov = 1;
 
 
var circle2 = {};
circle2.clip = krug2;
circle2.x = circle2.clip.x;
circle2.y = circle2.clip.y;
circle2.radius = circle2.clip.width/2;
circle2.xmov = -1;
circle2.ymov = 0;
 
function moveCircles () {
	for (var i=1; i<=2; i++) {
		var circle = this["circle"+i];
		circle.x += circle.xmov;
		circle.y += circle.ymov;
		circle.clip.x = circle.x;
		circle.clip.y = circle.y;
	}
}
 
function CircleToCircleDetection (c1, c2) {
	var xdiff = c1.x - c2.x;
	var ydiff = c1.y - c2.y;
	var distance = Math.sqrt(xdiff*xdiff+ydiff*ydiff);
	if (distance <= c1.radius + c2.radius) {
		trace ("Окружности пересекаются");
	} else {
		trace ("Окружности  НЕ  пересекаются");
	}
}

1 вопрос.

В функции moveCirces
Код AS3:
circle.x += circle.xmov;
circle.y += circle.ymov;
Для чего указывается
Код AS3:
circle.clip.x = circle.x;
circle.clip.y = circle.y;
Ведь это ясно было из написанного выше.

2 вопрос.

Откуда в функции CircleToCircleDetection взялись параметры с1 и с2? Они не были прописаны. Как программа
идентифицирует их?


Последний раз редактировалось alexcon314; 10.09.2014 в 08:14.
Старый 09.09.2014, 21:03
Gerbert вне форума Посмотреть профиль Найти все сообщения от Gerbert
  № 2  
Ответить с цитированием
Gerbert
Banned
[+1 06.12.14]
[+1 18.12.14]
[+1 30.12.14]

Регистрация: Aug 2014
Сообщений: 461
Цитата:
Откуда в функции CircleToCircleDetection взялись параметры с1 и с2?
Как это небыли? Они же в параметрах указанны... Здесь Вы инициируете ОБЯЗАТЕЛЬНЫЕ аргументы -
Код AS3:
function CircleToCircleDetection (c1, c2) {
Чтобы вызвать этот метод, Вам придется ОБЯЗАТЕЛЬНО передавать в него параметры. Типа -
Код AS3:
CircleToCircleDetection(5, 6);

Старый 09.09.2014, 21:32
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 3  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Автор имеет ввиду, как так метод CircleToCircleDetection не запущен!, а параметры переданы ))) Ну значит он откуда то из другого места запускается
__________________
Марк Tween

Старый 10.09.2014, 08:15
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 4  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Woody5678, для оформления кода пользуйтесь тегами [code][/code].

Старый 10.09.2014, 10:58
sospamom вне форума Посмотреть профиль Отправить личное сообщение для sospamom Найти все сообщения от sospamom
  № 5  
Ответить с цитированием
sospamom

Регистрация: Jun 2008
Сообщений: 126
По 1-ому вопросу:

Функция moveCircles передвигает мувиклипы.
Мувиклипы это circle1.clip и circle2.clip.

Можно было бы написать

Код AS3:
function moveCircles () {
	for (var i=1; i<=2; i++) {
		var circle = this["circle"+i];
		circle.clip.x += circle.xmov;
		circle.clip.y += circle.ymov;
	}
}
Но так писать нельзя. Потому что x и y у мувиклипов странно работают. Я не знаю почему, может другие напишут. Но получается примерно такая ситуация.

Код AS3:
movieclip1.x = 10;
movieclip1.x += 0.05;
movieclip1.x += 0.05;
movieclip1.x += 0.05;
movieclip1.x += 0.05;
 
trace(movieclip1.x); // выведет 10.27 вместо 10.2
Поэтому делают так

Код AS3:
var bla:Number = movieclip1.x;
bla += 0.05;
bla += 0.05;
bla += 0.05;
bla += 0.05;
 
trace(bla); // выведет 10.2
 
movieclip1.x = bla;

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

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

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


 


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


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