![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2009
Сообщений: 8
|
Есть проблема: сейчас в интернете большинство красивостей и возможностей написаны в AS3. Но что делать если основной код который уже есть, написан на AS2, а на изучение AS3 времени пока нет.
Вот код на AS2, он не работает на AS3 (а очень надо чтобы работал), - все действия с MovieClip видимо не поддерживаются и просто бесконечно выполняются. Если Вы хорошо знаете AS3, подскажите, какие методы и действия над мувиклипами нужно поменять чтобы этот AS2 заработал как AS3. //Создаем функцию которая будет красиво менять масштаб кнопки при наводе на нее мышкой.. MovieClip.prototype.elasticScale = function(a, b, txscale, tyscale) { this.tempxscale = this._xscale; this.tempyscale = this._yscale; this._xscale = a*(this._xscale-txscale)+b*(this.prevXscale-txscale)+txscale; this._yscale = a*(this._yscale-tyscale)+b*(this.prevYscale-tyscale)+tyscale; this.prevXscale = this.tempxscale; this.prevYscale = this.tempyscale; }; //Вот действия выполняемые при наводе курсора на кнопку меню menu1 _root.menu1.onRollOver = function() { //переходим на кадр, где кнопочка подсвечивается _root.menu1.gotoAndPlay(2); //а вот колебание кнопки _root.menu1.icon1.onEnterFrame = function() { this.elasticScale(1.5, -0.7, 110, 110); }; //тут выезжает красивая фигня-подсказка к кнопке menu1 _root.submenu1.gotoAndPlay(2); //а тут закрываются предыдущие открытые до этого подсказки к другим кнопкам _root.submenu2.gotoAndStop(1); _root.submenu3.gotoAndStop(1); _root.submenu4.gotoAndStop(1); _root.submenu5.gotoAndStop(1); }; //Убираем курсор с кнопки _root.menu1.onRollOut = function() { //возвращаемся в первый кадр подсветки кнопки _root.menu1.gotoAndPlay(1); //возвращаем масштаб кнопки в исходное положение _root.menu1.icon1.onEnterFrame = function() { this.elasticScale(1.5, -0.7, 100, 100); }; }; Помогите пожалуйста, объясните как угодить AS3 |
|
|||||
|
ветеран форума
|
для клипа, экземплярами котрого являются menu1,menu2,... задаем класс, в этом классе объявляем приватные tempxscale,tempyscale,... , и метод elasticScale
Изменения названий свойств можно найти в разделе про миграцию с AS2 на AS3 в хелпе, в основном убраны "_".
__________________
4am is time to rock |
|
|||||
|
Регистрация: Apr 2009
Сообщений: 117
|
Вариант не в стиле AS3 конечно, просто раз уж проект AS2, то думаю подойдет в самый раз.
var __root:Object = this["root"]; var isMouseOver__menu1:Boolean = false; __root.menu1.icon1.addEventListener( Event.ENTER_FRAME, onEnterFrame__menu1_icon1 ); __root.menu1.addEventListener( MouseEvent.MOUSE_OVER, onMouseOver__menu1 ); __root.menu1.addEventListener( MouseEvent.MOUSE_OUT, onMouseOut__menu1 ); //Вот действия выполняемые при наводе курсора на кнопку меню menu1 function onMouseOver__menu1( e:MouseEvent ):void { //переходим на кадр, где кнопочка подсвечивается __root.menu1.gotoAndPlay(2); //а вот колебание кнопки isMouseOver__menu1 = true; //тут выезжает красивая фигня-подсказка к кнопке menu1 __root.submenu1.gotoAndPlay(2); //а тут закрываются предыдущие открытые до этого подсказки к другим кнопкам __root.submenu2.gotoAndStop(1); __root.submenu3.gotoAndStop(1); __root.submenu4.gotoAndStop(1); __root.submenu5.gotoAndStop(1); } //Убираем курсор с кнопки function onMouseOut__menu1( e:MouseEvent ):void { //возвращаемся в первый кадр подсветки кнопки __root.menu1.gotoAndPlay(1); //возвращаем масштаб кнопки в исходное положение isMouseOver__menu1 = false; } function onEnterFrame__menu1_icon1( e:Event ):void { if( isMouseOver__menu1 ) elasticScale( __root.menu1.icon1, 1.5, -0.7, 110, 110 ); else elasticScale( __root.menu1.icon1, 1.5, -0.7, 100, 100 ); } function elasticScale( in_mc:Object, a:Number, b:Number, tScaleX:Number, tScaleY:Number ):void { tScaleX *= 0.01; tScaleY *= 0.01; in_mc.tempScaleX = in_mc.scaleX; in_mc.tempScaleY = in_mc.scaleY; if( in_mc.prevScaleX && in_mc.prevScaleY ) { in_mc.scaleX = a*(in_mc.scaleX-tScaleX)+b*(in_mc.prevScaleX-tScaleX)+tScaleX; in_mc.scaleY = a*(in_mc.scaleY-tScaleY)+b*(in_mc.prevScaleY-tScaleY)+tScaleY; } in_mc.prevScaleX = in_mc.tempScaleX; in_mc.prevScaleY = in_mc.tempScaleY; } Последний раз редактировалось GentleFLASH; 09.11.2009 в 23:17. |
|
|||||
|
Регистрация: Oct 2009
Сообщений: 8
|
Оригинальное решение!
Мне такое в самый раз, но gotoAndPlay и gotoAndStop по прежнему не работают.. Кадры непрерывно проигрываются, и от наведения мыши не зависят. Вот исходник моей меню на AS2 В таблице миграции с AS2 на AS3 я ниче не понял... (в AS2) - gotoAndPlay() (в AS3) - flash.display.MovieClip.gotoAndPlay() - This function is no longer a global function, but is still available as a method of the MovieClip class. |
|
|||||
|
Регистрация: Apr 2009
Сообщений: 117
|
Ну во-первых нужно убрать все скрипты с кнопок и мувиклипов и повесить их в кадр, для перехода по ссылке использовать такое:
hit.addEventListener( MouseEvent.CLICK, onClick ); function onClick( e:*=null ):void { navigateToURL( new URLRequest("http://www.getfile.co.kr"), "_blank" ); } gotoAndPlay() как был в АС2 так и в АС3 остался кстати, ничего там менять не надо Последний раз редактировалось GentleFLASH; 10.11.2009 в 12:52. |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:17. |
|
|
« Предыдущая тема | Следующая тема » |
|
|