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

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

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

Регистрация: Feb 2011
Сообщений: 13
По умолчанию AS2 -> AS3 позиции mouse и movieclip

Здравствуйте. Прошу помочь, найти, скорее всего, логическую ошибку(TypeError: Error #1010)
Я плохо разбираюсь в AS3 а надо переделать код под него. На втором все работает как надо: то есть, двигаю мышку в право, а мувиклип перемещается в лево и т.п. Жаль, что уже готовых примеров таких не нашёл...
AS3
Код AS3:
var stageWidth:Number = 1024;
var stageHeight:Number = 768;
var speed2:Number = 30;
 
var mc2Width = back_mc.DisplayObject.width;
var mc2Height = back_mc.DisplayObject.height;
var mc2X = back_mc.DisplayObject.x;
var mc2Y = back_mc.DisplayObject.y;
 
lock_scroll = false;
stage.addEventListener( Event.ENTER_FRAME);
{
	if (!lock_scroll)
		scroll_mc();
		scroll_mcy();
}
 
function scroll_mc() {
	var xdist = _xmouse-(stageWidth/2);
	mc2X += -xdist/speed2;
 
	if (mc2X>=0) {
		mc2X = 0;
	}
	if (mc2X<=stageWidth-mc2Width) {
		mc2X = stageWidth-mc2Width;
	}
 
	back_mc.DisplayObject.x=mc2X;
}
 
function scroll_mcy() {
	var xdist = _ymouse-(stageHeight/2);
	mc2Y += -xdist/speed2;
 
	if (mc2Y>=0) {
		mc2Y = 0;
	}
	if (mc2Y<=stageHeight-mc2Height) {
		mc2Y = stageHeight-mc2Height;
	}
 
	back_mc.DisplayObject.y=mc2Y;;
}
AS2
Код AS1/AS2:
stageWidth = 1024;
stageHeight = 768;
speed2 = 30;
 
mc2Width = back_mc._width;
mc2Height = back_mc._height;
mc2X = back_mc._x;
mc2Y = back_mc._y;
 
lock_scroll = false;
_root.onEnterFrame = function () {
	if (!lock_scroll)
		scroll_mc();
		scroll_mcy();
}
 
function scroll_mc() {
	var xdist = _xmouse-(stageWidth/2);
	mc2X += -xdist/speed2;
 
	if (mc2X>=0) {
		mc2X = 0;
	}
	if (mc2X<=stageWidth-mc2Width) {
		mc2X = stageWidth-mc2Width;
	}
 
	setProperty("back_mc", _x, mc2X);
}
 
function scroll_mcy() {
	var xdist = _ymouse-(stageHeight/2);
	mc2Y += -xdist/speed2;
 
	if (mc2Y>=0) {
		mc2Y = 0;
	}
	if (mc2Y<=stageHeight-mc2Height) {
		mc2Y = stageHeight-mc2Height;
	}
 
	setProperty("back_mc", _y, mc2Y);
}

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

Регистрация: May 2008
Адрес: {0,0}
Сообщений: 754
Записей в блоге: 1
Отправить сообщение для DaFive с помощью ICQ
Прочитайте про синтаксис addEventListener, про то как выглядят _xmouse и _ymouse в АС 3.0, про то, как обратиться к свойству клипа, потому что back_mc.DisplayObject.width - это вообще что-то с чем-то.
__________________
Кодинг, багинг, алгоритминг. me @

Старый 02.12.2011, 19:58
Blizzart вне форума Посмотреть профиль Отправить личное сообщение для Blizzart Найти все сообщения от Blizzart
  № 3  
Ответить с цитированием
Blizzart

Регистрация: Feb 2011
Сообщений: 13
спасибо, за подсказки, разобрался вот код может пригодиться кому:
Код AS3:
var stageWidth:Number = 1024;
var stageHeight:Number = 768;
var speed2:Number = 30;
 
var mc2Width = back_mc.width;
var mc2Height = back_mc.height;
var mc2X = back_mc.x;
var mc2Y = back_mc.y;
 
lock_scroll = false;
stage.addEventListener(Event.ENTER_FRAME, func_scroll);
function func_scroll (e:Event)
{
		scroll_mc();
		scroll_mcy();
}
 
function scroll_mc() {
	var xdist = mouseX-(stageWidth/2);
	mc2X += -xdist/speed2;
 
	if (mc2X>=0) {
		mc2X = 0;
	}
	if (mc2X<=stageWidth-mc2Width) {
		mc2X = stageWidth-mc2Width;
	}
 
	back_mc.x = mc2X;
}
 
function scroll_mcy() {
	var xdist = mouseY-(stageHeight/2);
	mc2Y += -xdist/speed2;
 
	if (mc2Y>=0) {
		mc2Y = 0;
	}
	if (mc2Y<=stageHeight-mc2Height) {
		mc2Y = stageHeight-mc2Height;
	}
 
	back_mc.y = mc2Y;
}

Создать новую тему Ответ Часовой пояс GMT +4, время: 10:15.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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