Просмотр полной версии : Movieclip FLIPping...
Здраствуйте!!
Кто-нибудь озадачивался проблемой зеркального переворачивания клипа?
то есть "Modufy/Transform/Flip Vertical" или "Горизонтал :)"
средствами акшнскрипта? _rotation - это же не совсем то, как я понимаю...
Макс.
И проще, чем ты думаешь.
Сперва пишем функцию
function movieclip_fliphorz(){
this._xscale=-this._xscale;
}
Затем - пишем прототип для мувика
movieclip.prototype.flipHorz=movieclip_fliphorz;
Ну, и на кнопку сажаем
on (release) {
_root.picture.fliphorz();
}
где picture - это имя клипа.
На картинке - это не я, а Тимур Шаов, прекрасный бард.
Смотри исходник.
Al S'asha
13.11.2001, 12:59
Applause
Но для чего формула понятно. А для чего создавать прототип?
Без этой строчки работает.
Если можно поясните.
Thanks
Спасибо! То, что и надо!!!!
макс.
В том варианте, который я выложил - без прототипа не работает. Прототип придает любому помещенному в сцену клипу новое свойство - в данном случае - флип. Можно написать теперь
pic1.fliphorz(); pic2.fliphorz(); bazuka.fliphorz() и т.д.
Закомментируй prototype и сразу все работать перестанет.
Можно и без него, но "это уже совсем другая история".
А это что бы ентод метод со всеми твоими мувами работал. :)
Кому нить невлом разжевать, что за зверь прототип, но только на пальцах, по-человечески, плз.
Есть у тебя какие-то стандартные типы. Мувиклип, или, скажем, строка. Для каждого из них можно расписать какое-то действие. Но ты хочешь, чтобы твое действие могло применяться автоматически ко всем объектам данного типа (класса). Например, ко всем мувам. Тогда ты описываешь поведение этого типа при обращении к функции. Т.е описав прототип, ты задаешь некоторые действия для всех помещенных в свой swf клипов. Получается новое как бы его свойство, вернее,- метод, применимый ко всем твоим клипам. В рамках форума это объяснить сложновато, а где почитать - не знаю, сам разбирался на пальцах, да на чужих примерах. Впрочем, как и большинство из нас.
Например, хочешь ты выровнять все свои клипы с именами qwe, rty, uio по горизонтали. Пишешь такой вот прототип:
Movieclip.prototype.alignX = function()
{
for (var m=1;m<arguments.length;m++)
{
if (typeof(arguments[m]) == "string") { arguments[m] = eval("_parent." + arguments[m]); }
}
if (arguments[0] eq "left")
{
for (var z=1;z<arguments.length;z++)
{
var temp = arguments[z];
temp._x = (this.getBounds(_parent)).xMin - ((temp.getBounds(_parent)).xMin - temp._x);
}
} else if (arguments[0] eq "right")
{
for (var z=1;z<arguments.length;z++)
{
var temp = arguments[z];
temp._x = (this.getBounds(_parent)).xMax - ((temp.getBounds(_parent)).xMax - temp._x);
}
} else if (arguments[0] eq "center")
{
for (var z=1;z<arguments.length;z++)
{
var temp = arguments[z];
temp._x = ((this.getBounds(_parent)).xMin + (this._width / 2)) - ((temp.getBounds(_parent)).xMin + (temp._width / 2) - temp._x);
}
} else {
for (var z=1;z<arguments.length;z++)
{
arguments[z]._x = this._x;
}
}
}
Тогда в сцене можно написать:
qwe.alignX("right",rty,uio);
И ведь выровняются, однако! И в списке их м.б. сколько хочешь, и ровнять можно (см.код) как угодно.
А можно написать прототип для string или еще для чего...
Кстати, если по прототипам кому описание попадется - дайте ссылку.
Почитай здесь http://www.3wgraphics.com/experience/issue008.htm и скачай Джонову библиотеку - там многое и без описания понятно бут.
Я всегда был уверен, что ты - настоящий товарисч!
По серьезному - есть, есть что почитать и чему подучиться. А то пролетарским-то чутьем хорошо, но долго.
:) :) :) :) :)
SPOSIBO!!!!!
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.