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

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

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

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Question Как создать класс

Привет. Подскажите, как создавать классы. Вот, например, я написал код для движения клипа на место клика на сцене (он не претендует на звание самого оптимального):
Код:
//**********Движение клипа при клике********
var speed: Number = 3; //скорость движения
var dx:Number = null; //движение по оси х
var dy:Number = null; //движение по оси у
_root.onMouseDown = function (){ //функция при клике мышкой на рабочем поле
	a = this._xmouse;
	b = this._ymouse;
	find_dd ();
	move ();
}

function find_dd (){ //расстояние от места клика до клипа
	true_lenx = a - mc._x;
	true_leny = b - mc._y;
	len_x = Math.abs(true_lenx);
	len_y = Math.abs(true_leny);
}

function move (){ //движение клипа
	mc.onEnterFrame = function (){
		if (len_x >= len_y){ //из подобия треугольников получаем зависимость х от у
			dx = speed;
			dy = len_y*dx/len_x;
		}
		if (len_x < len_y){
			dy = speed;
			dx = len_x*dy/len_y;
		}
		if (this._x >= a){ //проверяем условия при положении клипа в разных местах
			this._x -= dx;
			if (this._x <= a){
				this._x = a;
			}
		} else {
			this._x += dx;
			if (this._x >= a){
				this._x = a;
			}
		}
		if (this._y >= b){
			this._y -= dy;
			if (this._y <= b){
				this._x = b;
			}
		} else {
			this._y += dy;
			if (this._y >= b){
				this._y = b;
			}
		}
		if (this._x == a && this._y == b){
			delete this.onEnterFrame;
		}
	}
}
Я знаю, что для того, чтобы создать класс - надо записать этот код в отдельном txt файле с расширением as. Но в таком виде он естественно работать не будет. Как его записать, чтоб в дальнейшем вызывать его одной строкой и для любого клипа? Заранее спасибо.

Старый 16.10.2007, 12:17
relevance4 вне форума Посмотреть профиль Отправить личное сообщение для relevance4 Посетить домашнюю страницу relevance4 Найти все сообщения от relevance4
  № 2  
Ответить с цитированием
relevance4

Регистрация: Nov 2006
Адрес: там
Сообщений: 468
Отправить сообщение для relevance4 с помощью ICQ
в директории с твоим *.fla создаёшь Test.as
внутри Test.as
Код:
class Test {
  public function Test(args){
  }
}
чтобы подключить класс: import Test;

Старый 16.10.2007, 12:27
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 3  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Т.е. если изменяются только имя клипа и скорость, нужно записать
Код:
class Test {
  public function Test(mc: Movie Clip, speed: Number){
  }
}
А затем
Код:
import Test;
mc = new_clip;
speed = 10;
Правильно?
P.S.: сам не могу проверить - на работе флэш не установлен.

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

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Код:
import Test;
var my_test:Test = new Test(mc, speed);
так примерно.. но реализация кода класса - отдельная задача. и весьма специфичная. ваш кусок кода в первом посте мало пригоден для того, чтобы считаться законченным кодом класса, скорей набросок.
вывод - читаем умные книги.


Последний раз редактировалось alexcon314; 16.10.2007 в 13:49.
Старый 16.10.2007, 13:53
screamge вне форума Посмотреть профиль Отправить личное сообщение для screamge Посетить домашнюю страницу screamge Найти все сообщения от screamge
  № 5  
Ответить с цитированием
screamge
Ветеран форума
 
Аватар для screamge

Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
Советую книжку какую-нибудь взять и почитать, а то дискус может долгий разрастись.
__________________
Free-lance | Twitter | Me

Старый 16.10.2007, 16:35
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 6  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Спасибо. Купил Мука, но пока че то нипонятно... Может быть еще что-то посоветуете - именно по классам?

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

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
ООП - технология, охватывающая не только AS. В нете о ней масса инфы.
Выбирайте на свой вкус любой источник. поиск рулит.
мук - одна из достойных книг по этой теме, имхо.
Нужно потратить время и силы, разобраться, примеры проштудировать. Это не дело одного дня, недели, а мож и месяца...
Цитата:
"Не будем нервничать и не спеша во всем разберемся"

Старый 16.10.2007, 17:01
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 8  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Я бы даже сказал и года... Всем спасибо.

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

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

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


 


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


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