0
감사의 말을 전하겠습니다. 8 개의 영화 클립 (무비 클립 8 개)을 처리 할 무비 클립 8 개 (square1-8)와 plus1이라는 무비 클립이 있습니다. 나는 plus1을 한 번 클릭하고 square1을 color하고, plus1을 두 번째로 누르고 square2를 color하고 싶다. 이것은 내 코드이지만 무작위로 색상이 잘못되어있는 것 같습니다. 그게 뭐가 잘못되었는지 찾도록 도와 주시겠습니까?각 동영상 클립의 색상을 연속으로 지정하는 방법
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.geom.ColorTransform;
plus1.buttonMode=true;
var sximata:MovieClip = square1;
var myColorTransform:ColorTransform = new ColorTransform();
plus1.addEventListener(MouseEvent.CLICK, changeColour);
function changeColour(event:MouseEvent):void
{
if (contains(square1))
{
removeEventListener(MouseEvent.CLICK, onsquare1);
addEventListener(MouseEvent.CLICK, onsquare16);
}
if (contains(square2))
{
removeEventListener(MouseEvent.CLICK, onsquare2);
addEventListener(MouseEvent.CLICK, onsquare3);
}
if (contains(square3))
{
removeEventListener(MouseEvent.CLICK, onsquare3);
addEventListener(MouseEvent.CLICK, onsquare4);
}
if (contains(square4))
{
removeEventListener(MouseEvent.CLICK, onsquare4);
addEventListener(MouseEvent.CLICK, onsquare5);
}
if (contains(square5))
{
removeEventListener(MouseEvent.CLICK, onsquare5);
addEventListener(MouseEvent.CLICK, onsquare6);
}
if (contains(square6))
{
removeEventListener(MouseEvent.CLICK, onsquare6);
addEventListener(MouseEvent.CLICK, onsquare7);
}
if (contains(square7))
{
removeEventListener(MouseEvent.CLICK, onsquare7);
addEventListener(MouseEvent.CLICK, onsquare8);
}
myColorTransform.color = 0xBDB522;
sximata.transform.colorTransform = myColorTransform;
}
square1.addEventListener(MouseEvent.CLICK, onsquare1);
function onsquare1(e:MouseEvent):void {
sximata = square1;
}
square2.addEventListener(MouseEvent.CLICK, onsquare2);
function onsquare2(e:MouseEvent):void {
sximata = square2;
}
square3.addEventListener(MouseEvent.CLICK, onsquare3);
function onsquare3(e:MouseEvent):void {
sximata = square3;
}
square4.addEventListener(MouseEvent.CLICK, onsquare4);
function onsquare4(e:MouseEvent):void {
sximata = square4;
}
square5.addEventListener(MouseEvent.CLICK, onsquare5);
function onsquare5(e:MouseEvent):void {
sximata = square5;
}
square6.addEventListener(MouseEvent.CLICK, onsquare6);
function onsquare6(e:MouseEvent):void {
sximata = square6;
}
square7.addEventListener(MouseEvent.CLICK, onsquare7);
function onsquare7(e:MouseEvent):void {
sximata = square7;
}
square8.addEventListener(MouseEvent.CLICK, onsquare8);
function onsquare8(e:MouseEvent):void {
sximata = square8;
}
확인. 내 코드는 지금
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.geom.ColorTransform;
plus1.buttonMode=true;
minus1.buttonMode=true;
var nextSquare:MovieClip = square1;
var squares:Array = [square1, square2, square3, square4, square5, square6, square7, square8];
var myColorTransform:ColorTransform = new ColorTransform();
plus1.addEventListener(MouseEvent.CLICK, changeColour);
function changeColour(event:MouseEvent):void
{
myColorTransform.color = 0x519596;
nextSquare.transform.colorTransform = myColorTransform;
var index = squares.indexOf(nextSquare);
if (index < squares.length - 1) {
nextSquare = squares[index + 1];
} else {
trace('we are done');
}
}
minus1.addEventListener(MouseEvent.CLICK, reversecolour);
function reversecolour(event:MouseEvent):void
{
nextSquare.transform.colorTransform = new ColorTransform();
var index = squares.indexOf(nextSquare);
if (index < squares.length - 1) {
nextSquare = squares[index - 1];
} else {
trace('we are done');
}
}
처럼 보인다하지만 난이 오류를
형식 오류 얻을 : 오류 # 1009 : null 객체 참조의 속성이나 메서드에 액세스 할 수 없습니다. _fla에서 :: MainTimeline/changeColour()
감사합니다! 그것은 위대한 작품! – Marianna
이미 색칠되어있는 영화 클립을 계속 추적하려면 어떻게해야합니까? 말하기하자면 사각형 1-5 색깔, 무대에서 뭔가 다른 일을하고 난 나머지 색상 (square6-8) 계속합니다. 내가 어떻게 할 수 있니? – Marianna
마지막 색상의 영화 클립이 nextSquare에 저장되어 있으므로 이미 처리하고 있습니다. 다음에 plus1을 클릭하면 배열의 다음 사각형이 채색됩니다. –