![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2012
Сообщений: 2
|
Не могу быстро переделать код флеша, переход связан с анимацией в 3Д.
Может найдутся хорошие люди, которые мне помогут? Есть код в AS2, надо в AS3. Можно было попробовать методом треуголников переделать анимацию, но я не силен в AS , даже этот код брал с примеров и подрабатывал под свою задачу _root._quality = "BEST";
stop();
logo_mc.stop();
zeleniy_mc.stop();
kori4_mc.stop();
polzunok2.stop();
med_mc.stop();
grey_mc.stop();
uprav.playpause.pp._visible = false;
polzunok2._visible = false;
zeleniy_mc._visible = false;
kori4_mc._visible= false;
med_mc._visible = false;
grey_mc._visible = false;
color.zelen.onRelease = function()
{ var cadr:Number =_root.namegont._currentframe;
var coordx:Number =_root.namegont._x;
var coordy:Number =_root.namegont._y;
_root.namegont._visible = false; zeleniy_mc._visible = true;_root.namegont=zeleniy_mc;
uprav.playpause.pp._visible = false;
uprav.playpause.playv._visible = true;
_root.namegont.stop();
polzunok2._visible = false;
uprav.polzunok._visible = true;
polzunok2.stop();
_root.uprav.polzunok._x=(cadr*1.725)+54;
_root.namegont.gotoAndStop(cadr);
_root.zoom_func();
_root.namegont._x= coordx;
_root.namegont._y= coordy;
_root.v._x=300;
}
color.krasniy.onRelease = function()
{ var cadr:Number =_root.namegont._currentframe;
var coordx:Number =_root.namegont._x;
var coordy:Number =_root.namegont._y;
_root.namegont._visible = false; logo_mc._visible = true; _root.namegont=logo_mc;
uprav.playpause.pp._visible = false;
uprav.playpause.playv._visible = true;
_root.namegont.stop();
polzunok2._visible = false;
uprav.polzunok._visible = true;
polzunok2.stop();
_root.uprav.polzunok._x=(cadr*1.725)+54;
_root.namegont.gotoAndStop(cadr);
_root.zoom_func();
_root.namegont._x= coordx;
_root.namegont._y= coordy;
_root.v._x=255;
}
color.kori4.onRelease = function()
{ var cadr:Number =_root.namegont._currentframe;
var coordx:Number =_root.namegont._x;
var coordy:Number =_root.namegont._y;
_root.namegont._visible = false; kori4_mc._visible = true;_root.namegont=kori4_mc;
uprav.playpause.pp._visible = false;
uprav.playpause.playv._visible = true;
_root.namegont.stop();
polzunok2._visible = false;
uprav.polzunok._visible = true;
polzunok2.stop();
_root.uprav.polzunok._x=(cadr*1.725)+54;
_root.namegont.gotoAndStop(cadr);
_root.zoom_func();
_root.namegont._x= coordx;
_root.namegont._y= coordy;
_root.v._x=344;
}
color.seriy.onRelease = function()
{ var cadr:Number =_root.namegont._currentframe;
var coordx:Number =_root.namegont._x;
var coordy:Number =_root.namegont._y;
_root.namegont._visible = false; grey_mc._visible = true;_root.namegont=grey_mc;
uprav.playpause.pp._visible = false;
uprav.playpause.playv._visible = true;
_root.namegont.stop();
polzunok2._visible = false;
uprav.polzunok._visible = true;
polzunok2.stop();
_root.uprav.polzunok._x=(cadr*1.725)+54;
_root.namegont.gotoAndStop(cadr);
_root.zoom_func();
_root.namegont._x= coordx;
_root.namegont._y= coordy;
_root.v._x=433;
}
color.medniy.onRelease = function()
{ var cadr:Number =_root.namegont._currentframe;
var coordx:Number =_root.namegont._x;
var coordy:Number =_root.namegont._y;
_root.namegont._visible = false; med_mc._visible = true;_root.namegont=med_mc;
uprav.playpause.pp._visible = false;
uprav.playpause.playv._visible = true;
_root.namegont.stop();
polzunok2._visible = false;
uprav.polzunok._visible = true;
polzunok2.stop();
_root.uprav.polzunok._x=(cadr*1.725)+54;
_root.namegont.gotoAndStop(cadr);
_root.zoom_func();
_root.namegont._x= coordx;
_root.namegont._y= coordy;
_root.v._x=388.5;
}
if (!namegont){var namegont:String=logo_mc; }
//
//Функция МАСШТАБИРОВАНИЯ
//
function zoom_func() {
trace("zoom_func");
if (_root.pan_mc.pan_mc._y<-1) {
_root.namegont._xscale = _root.namegont._yscale=100+400/50*Math.round(Math.abs(_root.pan_mc.pan_mc._y));
} else if (_root.pan_mc.pan_mc._y>1) {
_root.namegont._xscale = _root.namegont._yscale=100-95/50*Math.round(Math.abs(_root.pan_mc.pan_mc._y));
} else {
_root.namegont._xscale = _root.namegont._yscale=100;
}
_root.zoom_txt.text = _root.namegont._xscale+"%";
}
function dvig_func() {
trace("dvig_func");
_root.namegont.gotoAndStop(Math.round((_root.uprav.polzunok._x-54)/1.725))};
//Создаём событие "НАЖАТЬ"
pan_mc.pan_mc.onPress = function() {
//Когда на ползунок нажали, для бОльшей наглядности, меняем цвет ползунка, на более блеклый
this.gotoAndStop(2);
//Начинаем перетаксивать ползунок
this.startDrag(false, this._x, -50, this._x, 50);
this.onMouseMove = _root.zoom_func;
};
//Создаём событие "ОТПУСТИТЬ"
pan_mc.pan_mc.onRelease = pan_mc.pan_mc.onReleaseOutside=function () {
//Возвращаем начальный цвет ползунку
this.gotoAndStop(1);
//Останавливаем перетаскивание
this.stopDrag();
//Удаляем событие, которое срабатывало каждый раз при движении мышки
delete this.onMouseMove;
};
//Создаём событие "НАЖАТЬ"
uprav.polzunok.onPress = function() {
//Когда на ползунок нажали, для бОльшей наглядности, меняем цвет ползунка, на более блеклый
this.gotoAndStop(2);
//Начинаем перетаксивать ползунок
this.startDrag(false, 56,this._y, 467,this._y);
this.onMouseMove = _root.dvig_func;
};
//Создаём событие "ОТПУСТИТЬ"
uprav.polzunok.onRelease = uprav.polzunok.onReleaseOutside=function () {
// ставим ползунок анимированный на место
_root.polzunok2.gotoAndStop(Math.round((_root.uprav.polzunok._x-56)/1.725));
//Возвращаем начальный цвет ползунку
this.gotoAndStop(1);
//Останавливаем перетаскивание
this.stopDrag();
//Удаляем событие, которое срабатывало каждый раз при движении мышки
delete this.onMouseMove;
};
//
//Создаём событие "НАЖАТЬ" play
uprav.playpause.playv.onPress = function() {
uprav.playpause.playv._visible = false;
uprav.playpause.pp._visible = true;
polzunok2._visible = true;
uprav.polzunok._visible = false;
_root.polzunok2.gotoAndStop(Math.round((_root.uprav.polzunok._x-54)/1.725));
polzunok2.play();
_root.namegont.play();
};
uprav.playpause.pp.onPress = function() {
var cadr:Number =_root.namegont._currentframe;
uprav.playpause.pp._visible = false;
uprav.playpause.playv._visible = true;
_root.namegont.stop();
polzunok2._visible = false;
uprav.polzunok._visible = true;
_root.uprav.polzunok._x=(cadr*1.725)+54;
polzunok2.stop();
};
_root.logo_mc.onPress = function() {
//Начинаем перетаскивать объект
_root.logo_mc.startDrag();
};
_root.logo_mc.onRelease = _root.logo_mc.onReleaseOutside=function () {
//Оканчиваем перетаскивать объект
_root.logo_mc.stopDrag();
delete this.onMouseMove;
};
_root.zeleniy_mc.onPress = function() {
//Начинаем перетаскивать объект
_root.zeleniy_mc.startDrag();
};
_root.zeleniy_mc.onRelease = _root.zeleniy_mc.onReleaseOutside=function () {
//Оканчиваем перетаскивать объект
_root.zeleniy_mc.stopDrag();
delete this.onMouseMove;
};
_root.kori4_mc.onPress = function() {
//Начинаем перетаскивать объект
_root.kori4_mc.startDrag();
};
_root.kori4_mc.onRelease = _root.kori4_mc.onReleaseOutside=function () {
//Оканчиваем перетаскивать объект
_root.kori4_mc.stopDrag();
delete this.onMouseMove;
};
_root.med_mc.onPress = function() {
//Начинаем перетаскивать объект
_root.med_mc.startDrag();
};
_root.med_mc.onRelease = _root.med_mc.onReleaseOutside=function () {
//Оканчиваем перетаскивать объект
_root.med_mc.stopDrag();
delete this.onMouseMove;
};
_root.grey_mc.onPress = function() {
//Начинаем перетаскивать объект
_root.grey_mc.startDrag();
};
_root.grey_mc.onRelease = _root.grey_mc.onReleaseOutside=function () {
//Оканчиваем перетаскивать объект
_root.grey_mc.stopDrag();
delete this.onMouseMove;
};
Mouse.addListener(this);
this.onMouseWheel = function(varDelta:Number) {
trace("onMouseWheel");
//Смещаем положение ползунка
_root.pan_mc.pan_mc._y -= varDelta;
//Проверяем, если ползунок поднимается выше отметки -50 по Y, то ставим его на положение -50
if (_root.pan_mc.pan_mc._y<-50) {
_root.pan_mc.pan_mc._y = -50;
} else if (_root.pan_mc.pan_mc._y>50) {
//Если опускается ниже 50, то ставим на 50
_root.pan_mc.pan_mc._y = 50;
}
//Запускаем функцию МАСШТАБИРОВАНИЯ
_root.zoom_func();
};
|
|
|||||
|
Не могу сдержаться:
http://lleo.me/dnevnik/2012/09/28.html Ну или начинайте сами читать справку, переводить на as3 и постить сюда что у Вас конкретно не получается. Ладно ещё, когда задачи по языку из университетского курса просят решить - там начинающим помошникам это тоже выгодно - потренироваться на задачках, заодно просящему решить. Но здесь случай не тот. |
|
|||||
|
Регистрация: Oct 2012
Сообщений: 2
|
Это все верно подмечено. Но .
Я сделал ролик в АС2, все прошло, заказчик претензий не имел, потом оказалось, что фон картинки должен быть другой, и "перспектива" объекта с текстурой с несколькими горизонталями не смотрится. Узнал, что в AS3 картинку можно исказить правильно, но опять код не работает. За ролик мне заплатили совсем немного денег. И чтобы справится с задачей, у меня нет желания платить. Я не жду чтобы мне весь код переписали, был бы рад паре-тройке замечаний по данному коду. Здесь многое повторяется. А может тут весь код надо менять на АС3 и пара-тройка исправлений не поможет? Или быстрее сделать методом треугольников перспективу (не разобрался как это работает)? |
|
|||||
|
Цитата:
Похоже, на Вашем месте, я бы: - взял отсюда код порезки на треугольники - скопипастил пример, запустил, проверил что работает - побаловался с настройками до полного понимания работы порезки - начал копипастить этот код в проект Т.е. не стал бы переписывать при незнании языка. По поводу производительности - может треугольниками даже получится быстрее, чем 3D-трансформациями 10-го флешплеера, т.е. заморачиваться на этот счёт не стоит. |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:42. |
|
|
« Предыдущая тема | Следующая тема » |
|
|