Я новичок в кодировании, и мне трудно найти ответ на этот вопрос.
По сути, я пытаюсь сделать одевающуюся игру во Flash CS5.5 с помощью ActionScript 3. Текущая проблема заключается в том, что я пытаюсь придать цветам постоянство в разных предметах одежды (например, если у вас есть синюю футболку, затем переоденьтесь в платье, платье должно быть синим. Если вы измените цвет на красный на платье и вернетесь назад к футболкам, тогда футболка должна быть красной.)
Я использую активы, созданные в Photoshop, и помещаю все активы в символы Movie Clip (поэтому все футболки находятся внутри футболки Symbol, все платья находятся внутри платья Symbol и т. Д.) ; и, кроме того, я помещаю все одежды одного цвета в один и тот же номер ключевого кадра соответствующего символа (все красные одежды находятся в ключевом кадре 1, все синие одежды находятся в ключевом кадре 2 и т. д.).
То, что я пытаюсь сделать, - это присвоить номер переменной на временной шкале символа всякий раз, когда игрок нажимает на цветную кнопку, затем прочитать переменную на основной временной шкале, сохранить эту переменную в другой переменной на основной временной шкале. поэтому он сохраняется даже при изменении символа, а затем заставляет другой символ прочитать переменную на главной временной шкале, чтобы применить ее к функции, которая сообщает ему, куда идти.
Моя текущая проблема заключается в том, что я не могу всю жизнь иметь переменную на главной временной шкале для чтения переменной на Символе, и поэтому она не обновляется.
Вот код:
//MAIN SCENE SCRIPT
//STOP EVERYTHING FROM STARTING
stop();
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
//DECLARE COLOR VARIABLE IN MAIN TIMELINE AND ASSIGN VALUE FROM SQUARE
SYMBOL
var color = square.KeyColor;
//MOVE COLOR VARIABLE TO PERMANENT VARIABLE
var KeepColor:int = color;
// change color variable IF THE VALUE IS NOT 1
function ChangeColor () : void
{
if(KeepColor != 1)
{
if (square.KeyColor != 1)
{
KeepColor = square.KeyColor;
trace("color set to square value" )
}
else if (pentagon.KeyColor != 1)
{
KeepColor = pentagon.KeyColor;
trace("color set to pentagon value")
}
else
{
trace ("there is an error")
//break;
}
}
}
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
//CALL FUNCTION TO GO TO SQUARE SYMBOL AT THE CLICK OF BUTTON 1
btn1.addEventListener(MouseEvent.CLICK, printNumber);
//FUNCTION TO GO TO SQUARE SYMBOL
function printNumber(event:MouseEvent):void
{
//GO TO FIRST KEYFRAME IN MAIN TIMELINE AND STOP
gotoAndStop(1)
//ASSIGN KEYCOLOR VALUE
square.KeyColor = color;
//PRINT COLOR CODE
trace("color is " + color);
}
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
//CALL FUNCTION TO GO TO PENTAGON SYMBOL AT THE CLICK OF BUTTON 2
btn2.addEventListener(MouseEvent.CLICK, printNumber2);
//FUNCTION TO GO TO PENTAGON SYMBOL
function printNumber2(event:MouseEvent):void
{
//GO TO FIRST KEYFRAME IN MAIN TIMELINE AND STOP
gotoAndStop(2)
//PRINT COLOR CODE INSIDE OF THE PENTAGON SYMBOL
trace("color is " + color);
}
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
//CHECK THAT THE COLOR CODE IN TH MAIN TIMELINE IS THE SAME AS THE COLOR
FROM THE SQUARE
//PRINT THE CODE AT THE CLICK OF THIS BUTTON
btnK.addEventListener(MouseEvent.CLICK, checkOtherKey);
//DECLARE FUNCTION TO PRINT KeepColor VARIABLE
function checkOtherKey(event:MouseEvent):void
{
trace("the current color is " + KeepColor);
}
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
//SQUARE SYMBOL SCRIPT
//STOP EVERYTHING FROM STARTING
stop();
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
//DECLARE KEYFRAME CODE FOR COLOR
var KeyColor:int = 1;
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
//CALL FUNCTION TO GO TO COLOR 1 AT THE CLICK OF BUTTON 1
btn1.addEventListener(MouseEvent.CLICK, Keynumber);
//DECLARE FUNCTION FOR CHANGING KEYFRAME
function Keynumber(event:MouseEvent):void
{
//GO TO FIRST KEYFRAME IN SQUARE TIMELINE AND STOP
gotoAndStop(1);
//SET COLOR CODE TO 1
KeyColor = 1;
//PRINT COLOR CODE OF FIRST COLOR
trace("SQUARE" + KeyColor);
//change root color number
MovieClip(root).color = KeyColor;
}
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
//CALL FUNCTION TO GO TO COLOR 2 AT THE CLICK OF BUTTON 2
btn2.addEventListener(MouseEvent.CLICK, Keynumber2);
//DECLARE FUNCTION FOR CHANGING KEYFRAME
function Keynumber2(event:MouseEvent):void
{
//GO TO FIRST KEYFRAME IN SQUARE TIMELINE AND STOP
gotoAndStop(2);
//SET COLOR CODE TO 2
KeyColor = 2;
//PRINT COLOR CODE OF SECOND COLOR
trace("SQUARE" + KeyColor);
MovieClip(root).color = KeyColor;
}
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// PENTAGON SYMBOL SCRIPT
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
//STOP EVERYTHING FROM STARTING
stop()
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
//DECLARE KEYFRAME CODE FOR COLOR
var KeyColor:int;
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
//CALL FUNCTION TO GO TO COLOR 1 AT THE CLICK OF BUTTON 1
btn1.addEventListener(MouseEvent.CLICK, Keynumber);
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
//DECLARE FUNCTION FOR CHANGING KEYFRAME
function Keynumber(event:MouseEvent):void
{
//GO TO FIRST KEYFRAME IN PENTAGON TIMELINE AND STOP
gotoAndStop(1);
//SET COLOR CODE TO 1
KeyColor = 1;
//PRINT COLOR CODE OF FIRST COLOR
trace ("PENTAGON" + KeyColor);
}
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
//CALL FUNCTION TO GO TO COLOR 2 AT THE CLICK OF BUTTON 2
btn2.addEventListener(MouseEvent.CLICK, Keynumber2);
//DECLARE FUNCTION FOR CHANGING KEYFRAME
function Keynumber2(event:MouseEvent):void
{
//GO TO SECOND KEYFRAME IN PENTAGON TIMELINE AND STOP
gotoAndStop(2);
//SET COLOR CODE TO 2
KeyColor = 2;
//PRINT COLOR CODE OF SECOND COLOR
trace("PENTAGON" + KeyColor);
}
Спасибо за помощь!