![]() |
Movieclip FLIPping...
Здраствуйте!!
Кто-нибудь озадачивался проблемой зеркального переворачивания клипа? то есть "Modufy/Transform/Flip Vertical" или "Горизонтал :)" средствами акшнскрипта? _rotation - это же не совсем то, как я понимаю... Макс. |
Это можно.
Вложений: 1
И проще, чем ты думаешь.
Сперва пишем функцию function movieclip_fliphorz(){ this._xscale=-this._xscale; } Затем - пишем прототип для мувика movieclip.prototype.flipHorz=movieclip_fliphorz; Ну, и на кнопку сажаем on (release) { _root.picture.fliphorz(); } где picture - это имя клипа. На картинке - это не я, а Тимур Шаов, прекрасный бард. Смотри исходник. |
а если ещё проще?
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 и скачай Джонову библиотеку - там многое и без описания понятно бут.
|
Спасибо, Fisher!
Я всегда был уверен, что ты - настоящий товарисч!
По серьезному - есть, есть что почитать и чему подучиться. А то пролетарским-то чутьем хорошо, но долго. |
| Часовой пояс GMT +4, время: 16:24. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.