首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将每一部电影排成一行

如何将每一部电影排成一行
EN

Stack Overflow用户
提问于 2014-03-24 20:30:19
回答 1查看 58关注 0票数 0

我会接受你的帮助。我有8个电影(正方形1-8)和一个叫plus1的电影在舞台上处理8电影。我想点击plus1一次和颜色square1,第二次按plus1和颜色square2等等。这是我的代码,但似乎有什么问题,因为它的颜色随机。你能帮我找出它的什么毛病吗?

代码语言:javascript
运行
复制
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;
}

好的。我的代码现在看起来像这样

代码语言:javascript
运行
复制
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');
      }   
   }

但我知道这个错误

TypeError:错误#1009:无法访问空对象引用的属性或方法。at _fla::MainTimeline/changeColour()

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-25 02:07:00

不知道为什么需要这么多事件处理程序。你就不能把正方形放在一个数组里,每次点击plus1,颜色就移到下一个了吗?看看下面的代码。

代码语言:javascript
运行
复制
plus1.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 = 0xBDB522;
    nextSquare.transform.colorTransform = myColorTransform;

    var index = squares.indexOf(nextSquare);
    if (index < squares.length - 1) {
        nextSquare = squares[index + 1];
    } else {
        trace('we are done');
    }   
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22619942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档