![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Aug 2005
Сообщений: 28
|
Добрый вечер.
Помогите решить следующую проблему. Имеется фон-картинка "пирамида". Ученик должен провести высоту. Как я понимаю, во флэш можно организовать это дело таким образом, что если нажаты две точки-кнопки (вершина и точка в середине основания), то пускай проводится линия. Вопрос: как такое реализовать. Ссылка на детальное руководство и коды приветствуются. Заранее спасибо, Лидия ![]() |
|
|||||
|
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. |
|
|||||
|
...
модератор форума
Регистрация: 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. |
|
|||||
|
Регистрация: Aug 2005
Сообщений: 28
|
Спасибо за кодики, но может хоть какое-то пояснение можно скинуть или уж тогда сразу готовый файл?
Лидия |
|
|||||
|
Регистрация: Nov 2007
Адрес: Moscow
Сообщений: 566
|
Цитата:
// *** 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. |
|
|||||
|
Вот примерчик для детишек.
http://kind-armadillo.pochta.ru/fla/scool_test.swf http://kind-armadillo.pochta.ru/fla/scool_test.zip |
|
|||||
|
Регистрация: Aug 2005
Сообщений: 28
|
Добрый день.
Попробовала создать просто что-то типо варианта, когда нажимаешь на две точки еа белом (пока) поле. Выдаёт ошибки. Что я делаю не так (а деляю я явно где-то что-то не так). Лида |
|
|||||
|
Регистрация: Nov 2007
Адрес: Moscow
Сообщений: 566
|
Пардон за большой размер — лень было кнопки рисовать.
|
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
asdfg
|
|
|||||
|
Регистрация: Aug 2005
Сообщений: 28
|
Udaaff, спасибо Вам большое. Это именно то, что мне надо было создать. Один маааленький вопросик - а как избавиться/зафиксировать высоту, когда нажата вторая точка?
С уважением, Лидия |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:14. |
|
|
« Предыдущая тема | Следующая тема » |
|
|