Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 09.11.2009, 18:52
almasvas вне форума Посмотреть профиль Отправить личное сообщение для almasvas Найти все сообщения от almasvas
  № 1  
Ответить с цитированием
almasvas

Регистрация: Oct 2009
Сообщений: 8
По умолчанию Код AS2 заработает на AS3? Почти

Есть проблема: сейчас в интернете большинство красивостей и возможностей написаны в AS3. Но что делать если основной код который уже есть, написан на AS2, а на изучение AS3 времени пока нет.

Вот код на AS2, он не работает на AS3 (а очень надо чтобы работал), - все действия с MovieClip видимо не поддерживаются и просто бесконечно выполняются. Если Вы хорошо знаете AS3, подскажите, какие методы и действия над мувиклипами нужно поменять чтобы этот AS2 заработал как AS3.

Код AS1/AS2:
        //Создаем функцию которая будет красиво менять масштаб кнопки при наводе на нее мышкой..
        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);
    };
 
};
Это только кусок кода, остальной код к кнопке menu2 menu3 и т.д. подобный.

Помогите пожалуйста, объясните как угодить AS3

Старый 09.11.2009, 18:55
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 2  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
для клипа, экземплярами котрого являются menu1,menu2,... задаем класс, в этом классе объявляем приватные tempxscale,tempyscale,... , и метод elasticScale
Изменения названий свойств можно найти в разделе про миграцию с AS2 на AS3 в хелпе, в основном убраны "_".
__________________
4am is time to rock

Старый 09.11.2009, 20:15
GentleFLASH вне форума Посмотреть профиль Отправить личное сообщение для GentleFLASH Найти все сообщения от GentleFLASH
  № 3  
Ответить с цитированием
GentleFLASH

Регистрация: Apr 2009
Сообщений: 117
Вариант не в стиле AS3 конечно, просто раз уж проект AS2, то думаю подойдет в самый раз.


Код AS3:
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.
Старый 10.11.2009, 12:08
almasvas вне форума Посмотреть профиль Отправить личное сообщение для almasvas Найти все сообщения от almasvas
  № 4  
Ответить с цитированием
almasvas

Регистрация: 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.

Старый 10.11.2009, 12:50
GentleFLASH вне форума Посмотреть профиль Отправить личное сообщение для GentleFLASH Найти все сообщения от GentleFLASH
  № 5  
Ответить с цитированием
GentleFLASH

Регистрация: Apr 2009
Сообщений: 117
Ну во-первых нужно убрать все скрипты с кнопок и мувиклипов и повесить их в кадр, для перехода по ссылке использовать такое:
Код AS3:
hit.addEventListener( MouseEvent.CLICK, onClick );
 
function onClick( e:*=null ):void
{
	navigateToURL( new URLRequest("http://www.getfile.co.kr"), "_blank" );
}
А остальное в первом кадре исправить по образу и подобию, что я написал в посте выше, т.е все onEnterFrame и onRollOver и т.д сделать через слушатели и отдельные функции.


gotoAndPlay() как был в АС2 так и в АС3 остался кстати, ничего там менять не надо


Последний раз редактировалось GentleFLASH; 10.11.2009 в 12:52.
Создать новую тему Ответ Часовой пояс GMT +4, время: 03:17.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 03:17.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.