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

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

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

Регистрация: Jul 2005
Сообщений: 35
По умолчанию изменение размера клипа

День добрый ,Джентельмены.
в виде урока решил написать простенькую программку и весело споткнулся на ней

Сценарий простой:

при наведении мышки на объект (шар) он должен постепенно увеличиваться в размерах в зависимости от положения курсора мыши,чем ближе к центру шара,тем размер шара больше, при выходе мыши за пределы границ размер шара восстанавливается.

Как правильно написать вышеуказанный сценарий? Мой вариант такой:
Создаем клип ball_mc с радиусом 100

Задаем переменные :
«точка1» , «точка 2», «коэффициент».

Задаем свойства «точек» (надо ли это делать не знаю)

Привязываем координаты «точки1» к координатам мыши , а «точку2» к координатам центра шара.

Задаем условие :

Если координата x «точки1» >= x «точки2»-100 и x «точки1» <= x «точки2»+100 и то же для у, то выполняется выражение :
Вычисляется «коэффициэнт»

Если х «т1» >= х «т2» -100 и х «т1» <= х «т2» то
К = х «т1» -( «хт2»-100)
Иначе
К = ( х «т2»+100)-х «т1»

Далее
K=K/100

Далее размеры клипа увеличиваются
_scale=100*(1+K)

Выражение заканчивается.

Таким образом имеем максимальное увеличение шара в 200 процентов

Джентельмены, рабочий ли такой сценарий? Какие поправки или изменения нужны?
И как все это на язык ActionScript2 перевести?


Есстественно у меня ничего не работает ...
Второй вариант родился позже...думается надо использовать функцию.

написал такой код :

function grow ( ) {
var xB ;// точка привязанная к центру шара
var xM ;// как бы точка привязанная к указателю мыши
var k ;// коэффициент,необходимый для вычислений
xB = _this._x;
xM =_root._xmouse;

if (xB >= xM-100 && xB<=xM) {
k=xB-(xM-100);
k=k/100;
ball_mc._scale= 100*(1+k);
}
}
Ball_mc.onRollOver = grow ;


Помидорами в начинающих просьба не кидать.

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

Регистрация: Jun 2004
Адрес: Москва
Сообщений: 475
Держи и не мучайся
Код:
ball_mc.onEnterFrame = function() {
	var dx = this._parent._xmouse-this._x;
	var dy = this._parent._ymouse-this._y;
	var D = Math.sqrt((dx*dx)+(dy*dy));
	this.scale_X = (-Math.abs(D)+100)*2;
	this.scale_Y = this.scale_X;
	if (this.scale_X<=100) {
		this.scale_X = 100;
		this.scale_Y = 100;
	}
	var delta_scaleX = this.scale_X-this._xscale;
	var delta_scaleY = this.scale_Y-this._yscale;
	if (this.scale_X>=100) {
		this._xscale += delta_scaleX/10;
		this._yscale += delta_scaleY/10;
	}
};

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

Регистрация: Jul 2005
Сообщений: 35
благодарствую
.....
из к.ф " белое солнце пустыни"
-тебя сразу убить,или помучаешься?
-уж лучше помучаюсь...


Старый 15.07.2005, 12:19
Fokker вне форума Посмотреть профиль Отправить личное сообщение для Fokker Найти все сообщения от Fokker
  № 4  
Ответить с цитированием
Fokker

Регистрация: Jul 2005
Сообщений: 35
ух...почти разобрался...
не могу понять строчки с 11 по 15...если можете,прокоментируйте их...
и еще момент,клип ведет не совсем так...вопрос в пропорциях изменения,он должен быть линейным, а в вышеуказанном сценарии шар увеличивается значительно больше при подходе к центру, а на краях почти не реагирует на мышь...

еще раз спасибо (благодаря вам,еще немного знаний черпнул)

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

Регистрация: Jul 2005
Сообщений: 35
и еще один интересный моментик, клип как-то с замедлением реагирует на мышь...то есть если быстро провести мышью по шару,то он не успевает увеличиться...а как увеличить скорость изменения размера? (чтоб синхронно с проходом указателя мыши изменялся?)

....
но в любом случае здорово, уже можно кнопки поинтереснее делать.

Старый 15.07.2005, 12:31
KUZEN вне форума Посмотреть профиль Отправить личное сообщение для KUZEN Посетить домашнюю страницу KUZEN Найти все сообщения от KUZEN
  № 6  
Ответить с цитированием
KUZEN
Ветеран форума
 
Аватар для KUZEN

Регистрация: Jun 2005
Адрес: MOSCOW
Сообщений: 6,852
Отправить сообщение для KUZEN с помощью ICQ Отправить сообщение для KUZEN с помощью Yahoo Отправить сообщение для KUZEN с помощью Skype™
Цитата:
Сообщение от Fokker
и еще один интересный моментик, клип как-то с замедлением реагирует на мышь...то есть если быстро провести мышью по шару,то он не успевает увеличиться...а как увеличить скорость изменения размера? (чтоб синхронно с проходом указателя мыши изменялся?)

....
но в любом случае здорово, уже можно кнопки поинтереснее делать.
вот эта штуковина тебе немного поможет updateAfterEvent();
Код:
ball_mc.onEnterFrame = function() {
	var dx = this._parent._xmouse-this._x;
	var dy = this._parent._ymouse-this._y;
	var D = Math.sqrt((dx*dx)+(dy*dy));
	this.scale_X = (-Math.abs(D)+100)*2;
	this.scale_Y = this.scale_X;
	if (this.scale_X<=100) {
		this.scale_X = 100;
		this.scale_Y = 100;
	}
	var delta_scaleX = this.scale_X-this._xscale;
	var delta_scaleY = this.scale_Y-this._yscale;
	if (this.scale_X>=100) {
		this._xscale += delta_scaleX/10;
		this._yscale += delta_scaleY/10;
	}
         //
          updateAfterEvent();
         //
}
__________________
BestMasterиZация

Старый 15.07.2005, 14:11
Futs вне форума Посмотреть профиль Отправить личное сообщение для Futs Найти все сообщения от Futs
  № 7  
Ответить с цитированием
Futs
 
Аватар для Futs

Регистрация: Jun 2004
Адрес: Москва
Сообщений: 475
Измени 100 на 50 (кроме(-Math.abs(D)+100)*2 здесь попробуй подставить свое значение) увидиш что выйдет

Старый 15.07.2005, 14:45
Fokker вне форума Посмотреть профиль Отправить личное сообщение для Fokker Найти все сообщения от Fokker
  № 8  
Ответить с цитированием
Fokker

Регистрация: Jul 2005
Сообщений: 35
Джентельмены,прокоментируйте эту строчку пож.

var delta_scaleX = this.scale_X - this._xscale;

понятно,что задаем переменную и присваиваем ей значение, только я въехать не могу,что такое _xscale....и если можете,то растолкуйте ,как Фидель Кастро,по пунктам это выражение...ну не пойму я его никак..

Старый 15.07.2005, 14:50
KUZEN вне форума Посмотреть профиль Отправить личное сообщение для KUZEN Посетить домашнюю страницу KUZEN Найти все сообщения от KUZEN
  № 9  
Ответить с цитированием
KUZEN
Ветеран форума
 
Аватар для KUZEN

Регистрация: Jun 2005
Адрес: MOSCOW
Сообщений: 6,852
Отправить сообщение для KUZEN с помощью ICQ Отправить сообщение для KUZEN с помощью Yahoo Отправить сообщение для KUZEN с помощью Skype™
_xscale это маштабирование по горизонтали
__________________
BestMasterиZация

Старый 15.07.2005, 14:53
Futs вне форума Посмотреть профиль Отправить личное сообщение для Futs Найти все сообщения от Futs
  № 10  
Ответить с цитированием
Futs
 
Аватар для Futs

Регистрация: Jun 2004
Адрес: Москва
Сообщений: 475
ну ты даешь, жми F1

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

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

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


 


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


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