2013-08-23 2 views
0

파이어 볼의 애니메이션이 있습니다. 비트 맵을 사용하는 것이 바람직하다. (내 swf가 좀 더 부드럽게 실행되기 때문에 바람직하다.) 큰 그룹의 객체 (10-20 개의 다른 그림)를 사용한다. 데코 도구를 사용하여 만들었습니다.비트 맵/그룹으로 구성된 복잡한 애니메이션의 색상 변경

아무튼, 새로운 것을 만드는 것은 상당히 짜증나게합니다. 게다가 새로운 제품을 만들려고 시도했을 때 처음 제품처럼 잘 보이지 않았습니다. 나는 불 덩어리의 여러 가지 색을 만들 계획입니다. 필자가 어떻게 든 전체 심볼 fireball1의 색상을 필터링 할 수 있다면 매우 좋을 것입니다.하지만 그렇게하기 위해 애 쓰고 있습니다.

다음 코드를 시도했지만 어떤 이유로 든 내 불 덩어리가 완전히 사라졌습니다. 내 Fireball1 클래스의 새로운 자식을 모두 내 배열에 추가하기 때문에 혼란 스러울 수 있습니다. 또한, 여기 내 타임 라인의 그림에 대한 링크입니다, 내 fireball 모양을 이해하는 데 도움이 될 것 같아 http://tinypic.com/view.php?pic=fd7oyh&s=5.

private var fireball1:Fireball1; 
private var gameTimer:Timer; 
private var army1:Array; //included the arrays in case it effects it somehow 
private var colorFilter:ColorMatrixFilter = new ColorMatrixFilter(colorMatrix); 
private var colorMatrix:Array = new Array(
     [[0, 0, 1, 0, 0], 
     [0, 1, 0, 0, 0], 
     [1, 0, 0, 0, 0], 
     [0, 0, 0, 1, 0]]); 

public function PlayScreen(){ 
    army1 = new Array(); 
    var newFireball1 = new Fireball1(-100, 0); 
    army1.push(newFireball1); 
    addChild(newFireball1); 

    gameTimer = new Timer(50); 
    gameTimer.start(); 
    addEventListener(TimerEvent.TIMER, onTick) 
} 

public function onTick():void 
{ 
    var newFireball1:Fireball1 = new Fireball1(randomX, -15); 
newFireball1.filters = [colorFilter]; 
    army1.push(newFireball1); 
addChild(newFireball1); 
} 

답변

1

당신은 당신이 ColorMatrixFilter 개체를 인스턴스화하기 전에 매트릭스 array를 정의 할 필요가있다. 또한 ColorMatrixFilter은 1 차원 array을 필요로합니다. 트릭을 수행하는 것으로 보이는 concat을 사용하는 구문을 권장하는 documentation을 참조하십시오.

는 다음과 같이 코드를 업데이트하십시오 :

// Matrix should be a one dimensional array 
var colorMatrix:Array = new Array(); 
colorMatrix = colorMatrix.concat([0, 0, 1, 0, 0]), 
colorMatrix = colorMatrix.concat([0, 1, 0, 0, 0]), 
colorMatrix = colorMatrix.concat([1, 0, 0, 0, 0]), 
colorMatrix = colorMatrix.concat([0, 0, 0, 1, 0]); 

// Matrix needs to be defined before it's added to the ColorMatrixFilter 
var colorFilter:ColorMatrixFilter = new ColorMatrixFilter(colorMatrix); 
+0

덕분에이 일! 너무 많은 시간과 문제 =)))) +1 +1 – spaderdabomb