Преобразование простой AS2 в AS3 - PullRequest
0 голосов
/ 11 февраля 2010

Мне потребовалась помощь по простому вопросу - преобразованию некоторого ActionScript 2 в AS3. Скрипт для скользящей панели. Я думаю, что мне нужно добавить моих слушателей событий, но я не уверен, как это сделать.

На сцене есть три кнопки: b1, b2 и closeb. Скользящая панель называется bigSlide, а внутри она содержит отдельные части, которые называются slide1 и slide2.

Заранее спасибо!

stop();

var currentPosition:Number = bigSlide.slide1.x;
var startFlag:Boolean = false;
menuSlide = function (input:MovieClip) {
if (startFlag == false) {

startFlag = true;

var finalDestination:Number = input.x;
var distanceMoved:Number = 0;
var distanceToMove:Number = Math.abs(finalDestination-currentPosition);
var finalSpeed:Number = .3;
var currentSpeed:Number = 0;
var dir:Number = 1;

if (currentPosition<=finalDestination) {
dir = -1;
} else if (currentPosition>finalDestination) {
dir = 1;
}

this.onEnterFrame = function() {
currentSpeed = Math.round((distanceToMove-distanceMoved+1)*finalSpeed);
distanceMoved += currentSpeed;
bigSlide.x += dir*currentSpeed;
if (Math.abs(distanceMoved-distanceToMove)<=1) {
bigSlide.x = maskMovie.x-currentPosition+dir*distanceToMove;
currentPosition = input.x;
startFlag = false;
delete this.onEnterFrame;
}
};
}
};
b1.onRelease = function() {
menuSlide(bigSlide.slide1);
};
bigSlide.slide1.more.onRelease = function() {
menuSlide(bigSlide.slide2);
};
b2.onRelease = function() {
menuSlide(bigSlide.slide2);
};

closeb.onRelease = function() {
 root.myLoader.contentPath = null;
}

1 Ответ

1 голос
/ 11 февраля 2010

Начните с события ввода кадра:

this.addEventListener(Event.ENTER_FRAME, enterFrameHandler);

function enterFrameHandler(event:Event):void
{
    var target:MovieClip = MovieClip(event.target);
}

target будет установлен в качестве цели события (this). Таким образом, вы можете манипулировать его свойствами. Вам нужно будет объявить «currentSpeed» и «distanceMoved» и другие переменные в верхней части вашего скрипта, поскольку AS3 не так прост, как объявление переменных.

Чтобы добавить слушателей мыши:

b1.addEventListener(MouseEvent.CLICK, onClick);
function onClick(event:MouseEvent)
{
    menuSlide();
}

Не забудьте, что вам придется:

import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;

импортировать классы, на которые вы ссылаетесь.

delete this.onEnterFrame;

в AS3 будет

this.removeEventListener(Event.ENTER_FRAME, enterFrameHandler);

Это должно начать вас. Могу редактировать позже. Я бы не назвал переход с AS2 на AS3 «простой проблемой», если вы никогда не делали этого раньше. Это совсем другое, так что удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...