Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 如何为一行中的每个电影唇涂上颜色_Actionscript 3 - Fatal编程技术网

Actionscript 3 如何为一行中的每个电影唇涂上颜色

Actionscript 3 如何为一行中的每个电影唇涂上颜色,actionscript-3,Actionscript 3,我将感谢你的帮助。我有8个电影唇1-8和一个叫做plus1的电影唇在舞台上处理这8个电影唇。我想单击一次plus1和color square1,第二次按plus1和color square2,依此类推。这是我的代码,但似乎有什么问题,因为它的颜色随机。你能帮我找出它的毛病吗 import flash.display.MovieClip; import flash.events.MouseEvent; import flash.geom.ColorTransform; plus1.button

我将感谢你的帮助。我有8个电影唇1-8和一个叫做plus1的电影唇在舞台上处理这8个电影唇。我想单击一次plus1和color square1,第二次按plus1和color square2,依此类推。这是我的代码,但似乎有什么问题,因为它的颜色随机。你能帮我找出它的毛病吗

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');
      }   
   }
但是我得到了这个错误

TypeError:错误1009:无法访问空对象引用的属性或方法。
在佛罗里达州:MainTimeline/ChangeColor不知道为什么需要这么多事件处理程序。你能不能把正方形保持在一个数组中,每次点击plus1时,用不同的颜色移动到下一个?查看下面的代码

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');
    }   
}

如果我想跟踪已经上色的电影嘴唇呢?假设正方形1-5是彩色的,我在舞台上做了其他的事情,我继续给其余的正方形6-8上色。我该怎么做呢?这已经可以处理了,因为最后一个彩色电影剪辑存储在nextSquare中。下次单击plus1时,它将为数组中的下一个正方形着色。是的,你是对的。我没有正确地表达自己。我正计划用另一部电影来做相反的事情,但我很难在动作脚本中告诉你,从上一部彩色电影中开始拍摄电影,然后再回去。如果你能给我一些指导,我将不胜感激。谢谢。只需添加新的电影剪辑,当它被点击时,而不是点击nextSquare=squares[index+1],与nextsquares=squares[index-1]相反并删除颜色。我这样做了,你可以在上面看到它,但我有一个错误,我在上面写了它,在第二次点击时,它开始恢复原来的颜色。