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

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

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

Регистрация: Aug 2005
Сообщений: 28
Question Нажать две кнопки и между ними нарисовать прямую

Добрый вечер.
Помогите решить следующую проблему.
Имеется фон-картинка "пирамида". Ученик должен провести высоту. Как я понимаю, во флэш можно организовать это дело таким образом, что если нажаты две точки-кнопки (вершина и точка в середине основания), то пускай проводится линия.
Вопрос: как такое реализовать. Ссылка на детальное руководство и коды приветствуются.

Заранее спасибо,
Лидия

Старый 31.03.2008, 04:03
Mr. Fixit вне форума Посмотреть профиль Найти все сообщения от Mr. Fixit
  № 2  
Ответить с цитированием
Mr. Fixit
Banned
[+1 08.05.08]
[+4 14.04.08]
[+1.3 02.05.08]

Регистрация: Oct 2006
Адрес: кагбэ Киеф!!1
Сообщений: 1,473
Код:
// *** variables
var firstClicked : Boolean = false;

var line_mc : MovieClip = this.createEmptyMovieClip('line', 0);
line_mc.lineStyle(1);

// *** methods
function checkPos() : Void {
       if(!firstClicked) {
              standOnFirstPoint();
              firstClicked = true;
       }
       else standOnSecondPoint();

       delete this.onPress;
}

function standOnFirstPoint() : Void {
       line_mc.moveTo(_root._xmouse, _root._ymouse);
}

function standOnSecondPoint() : Void {
       line_mc.lineTo(_root._xmouse, _root._ymouse);
}

// *** events
top_btn.onPress = checkPos;
bottom_btn.onPress = checkPos;


Последний раз редактировалось Mr. Fixit; 31.03.2008 в 04:05.
Старый 31.03.2008, 04:19
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 3  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Код:
apexPoint.onPress = onPressHandler;
apexPoint.onRelease = onRelaseHandler;
apexPoint.onReleaseOutside = function()
{
	delete this.onMouseMove;
	if (basePoint.hitTest(_level0._xmouse, _level0._ymouse))
		drawLine(this._x, this._y, basePoint._x, basePoint._y);
	else
		clearLine();
}

basePoint.onPress = onPressHandler;
basePoint.onRelease = onReleaseHandler;
basePoint.onReleaseOutside = function()
{
	delete this.onMouseMove;
	if (apexPoint.hitTest(_level0._xmouse, _level0._ymouse))
		drawLine(this._x, this._y, apexPoint._x, apexPoint._y);
	else
		clearLine();
}

function onPressHandler()
{
	this.onMouseMove = onMouseMoveHandler;
}

function onReleaseHandler()
{
	clearLine();
	delete this.onMouseMove;
}

function onMouseMoveHandler()
{
	drawLine(this._x, this._y, this._parent._xmouse, this._parent._ymouse);
	updateAfterEvent();
}

var line:MovieClip = this.createEmptyMovieClip("line", this.getNextHighestDepth());

function clearLine()
{
	line.clear();
}

function drawLine(x1:Number, y1:Number, x2:Number, y2:Number)
{
	line.clear();
	line.lineStyle(0);
	line.moveTo(x1, y1);
	line.lineTo(x2, y2);
}


Последний раз редактировалось udaaff; 31.03.2008 в 04:22.
Старый 31.03.2008, 11:45
Lidia вне форума Посмотреть профиль Отправить личное сообщение для Lidia Найти все сообщения от Lidia
  № 4  
Ответить с цитированием
Lidia

Регистрация: Aug 2005
Сообщений: 28
Спасибо за кодики, но может хоть какое-то пояснение можно скинуть или уж тогда сразу готовый файл?
Лидия

Старый 31.03.2008, 12:48
Obi вне форума Посмотреть профиль Отправить личное сообщение для Obi Найти все сообщения от Obi
  № 5  
Ответить с цитированием
Obi
 
Аватар для Obi

Регистрация: Nov 2007
Адрес: Moscow
Сообщений: 566
Цитата:
Сообщение от Lidia
Спасибо за кодики, но может хоть какое-то пояснение можно скинуть или уж тогда сразу готовый файл?
Лидия
Код Mr. Fixit'a с пояснениями:
Код:
// *** variables
var firstClicked : Boolean = false; // была-ли нажата первая кнопка 

var line_mc : MovieClip = this.createEmptyMovieClip('line', 0); // создаем контейнер для будущей линии 
line_mc.lineStyle(1); // ширина линии — 1 пиксел

// *** methods
function checkPos() : Void {
       if(!firstClicked) {  // если первая кнопка не была нажата
              standOnFirstPoint(); // вызываем функцию
              firstClicked = true; // говорим, что кнопка нажалась
       }
       else standOnSecondPoint(); // если первую кнопку уже нажимали, запускаем standOnSecondPoint();

       delete this.onPress; // удаляем слушателя для той кнопки, на которую нажали
}

function standOnFirstPoint() : Void {
       line_mc.moveTo(_root._xmouse, _root._ymouse); // двигаем перо к перой кнопке
}

function standOnSecondPoint() : Void {
       line_mc.lineTo(_root._xmouse, _root._ymouse); // рисуем линию  ко второй кнопке
}

// *** events
// добавляем слушателя
top_btn.onPress = bottom_btn.onPress = checkPos;  // при нажатии на одну из кнопок, запускается функция checkPos 


Последний раз редактировалось Obi; 31.03.2008 в 12:55.
Старый 31.03.2008, 16:24
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 6  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Вот примерчик для детишек.
http://kind-armadillo.pochta.ru/fla/scool_test.swf
http://kind-armadillo.pochta.ru/fla/scool_test.zip

Старый 31.03.2008, 20:36
Lidia вне форума Посмотреть профиль Отправить личное сообщение для Lidia Найти все сообщения от Lidia
  № 7  
Ответить с цитированием
Lidia

Регистрация: Aug 2005
Сообщений: 28
Добрый день.
Попробовала создать просто что-то типо варианта, когда нажимаешь на две точки еа белом (пока) поле. Выдаёт ошибки. Что я делаю не так (а деляю я явно где-то что-то не так).
Лида
Вложения
Тип файла: zip abba.zip (4.6 Кб, 64 просмотров)

Старый 31.03.2008, 20:43
Obi вне форума Посмотреть профиль Отправить личное сообщение для Obi Найти все сообщения от Obi
  № 8  
Ответить с цитированием
Obi
 
Аватар для Obi

Регистрация: Nov 2007
Адрес: Moscow
Сообщений: 566
Пардон за большой размер — лень было кнопки рисовать.
Вложения
Тип файла: rar 1.rar (43.6 Кб, 62 просмотров)

Старый 31.03.2008, 21:04
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 9  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
asdfg
Вложения
Тип файла: rar sample.rar (5.1 Кб, 75 просмотров)

Старый 02.04.2008, 00:30
Lidia вне форума Посмотреть профиль Отправить личное сообщение для Lidia Найти все сообщения от Lidia
  № 10  
Ответить с цитированием
Lidia

Регистрация: Aug 2005
Сообщений: 28
Udaaff, спасибо Вам большое. Это именно то, что мне надо было создать. Один маааленький вопросик - а как избавиться/зафиксировать высоту, когда нажата вторая точка?

С уважением,
Лидия

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

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

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


 


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


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