![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Jul 2008
Сообщений: 107
|
Здравствуйте. Хочу вот разобраться с классами (пока AS1). Куча пересмотренных и перечитанных примеров…а начинаю делать своё, понимаю, что путаю “модуляцию” с “холодильником”.
Я выложил свой исходник. И у меня такой вопрос: можно ли для этой веревки сделать класс, чтобы можно было с меньшим количеством строк кода создавать ей подобных. Не знаю, может я глупость написал. В общем, если это возможно, покажите, пожалуйста. Может быть, на своем примере до меня дойдет, что же это за беда такая и что в неё пихать можно. |
|
|||||
|
as1 устарел и всё что хорошее там было теперь есть в as2. Читайте сразу про него.
Ваш пример в моей версии Флеша не открывается. |
|
|||||
|
Banned
|
В AS1 это можно сделать, например так:
//////////////////////////////
//// класс ClassRope //////
//////////////////////////////
function ClassRope(a, point, hm){
this.a=a
this.point=point
this.hm=hm
this.onEnterFrame=this.dryg
}
//// методы класса ClassRope ///////////
ClassRope.prototype.dryg=function(){
if (this.hm) {
this.cy = this._y=this.point+this.r*Math.sin(this.a);
this.a += .7;
this.r -= this.r/15;
clear();
this.draw(0,200,550,200,225,this.cy);
}
}
ClassRope.prototype.draw=function(ax, ay, bx, by, cx, cy){
this.cy=cy
_root.lineStyle(2,0xFFFF00);
_root.moveTo(ax,ay);
_root.curveTo(cx,cy,bx,by);
}
ClassRope.prototype.onMouseDown=function(){
this.hm = true;
this.r = Math.abs(_root._ymouse-this.point);
}
////////////////////////////////
// а теперь собственно подключение любого мувика к классу ClassRope:
q.__proto__=new ClassRope(0,200,false)
AS1 устарел не более, чем AS2. К тому же AS1 более гибкий, чем AS2 и AS3. Ограничения AS1 на настоящий момент являются исскуственно созданными компанией адоб и зависят не от AS1 как такового, а от AVM. NB! Что такое прототипы Битва гигантов: AVM1 vs. AVM2. Спешите видеть! Только у нас! |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Цитата:
Иначе вы своими чудо-классами научите черт знает чему, а потом нормальных флешеров на работу днём с огнём не найдешь. Последний раз редактировалось etc; 09.09.2008 в 12:51. |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 107
|
Спасибо,но мне кажется, что я многого не пойму и многое потеряю. Нужно клип q создать и кинуть его на стол.
var a:Number = 0;
var point:Number = 200;
var hm:Boolean = false;
q._visible = false;
q.onEnterFrame = function():Void {
if (hm) {
cy = this._y=point+r*Math.sin(a);
a += .7;
r -= r/15;
clear();
draw(0,200,550,200,225,cy);
updateAfterEvent();
if (r<=0) {
this._y = point;
hm = false;
delete this.onEnterFrame;
}
}
};
_root.onMouseDown = function():Void {
hm = true;
r = Math.abs(_root._ymouse-point);
};
function draw(ax:Number, ay:Number, bx:Number, by:Number, cx:Number, cy:Number):Void {
lineStyle(2,0xFFFF00);
moveTo(ax,ay);
curveTo(cx,cy,bx,by);
}
|
|
|||||
|
замечательная верёвочка.
Создавайте клас на основе МувикаКлипа Задавайте методы. И всё должно работать. Только запуск "мотыляния" надо не на клик в руте вешать, а на что нить другое а то все копии этих верёвок будут одновременно срабатывать |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 107
|
Спасибо за внимание. Понимаете, я уже неделю пытаюсь это сделать и скоро повешусь на этой веревочке... проблемма в том, что от переизбытка информации граница между переменными, свойствами и методами практически стерта... Я не понимаю что и где должно определяться, что должно быть внутри самого класса. Мне бы структуру этого всего.... а то, что все клипы на клик реагируют, то Бог с ним.. мне бы принцип понять.
|
|
|||||
|
создайте пустой класс наследуемый от Мувиклипа. Это прочли как делать?
Потом создайте внутри класса методы (функции), которые у вас уже есть + небольшое изменение для удобства: функция старта мотыляния, остановки, процесса мотыляния и функция рисованию... всё затем обьявляете свойтсва, которые у вас уже есть ( var ... ) А потом настраиваете это так чтоб работала не из рута, а как самостоятельный клип. |
|
|||||
|
и шо это, извините, за бред?
![]() вы бы хоть попытались создать пару экземпляров и вписать в параметры что-нить помимо (0, 200) |
|
|||||
|
Banned
|
Цитата:
Где у автора, "что-нибудь с параметрами отличными от (0, 200)"? Где у автора "пара экземпляров"? Зачем человеку пудрить мозг создавая, что-то мега-навороченное? Это, считайте, учебный пример по классам в AS1. Цитата:
Цитата:
![]() А про "нормальных" и "чудо-классы" - это вы туда - в ту тему. Тут не надо. Последний раз редактировалось chingachgoog; 09.09.2008 в 12:57. |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:01. |
|
|
« Предыдущая тема | Следующая тема » |
|
|