2012-04-11 3 views
0

무대에 추가 할 라이브러리의 영화 클립이 거의 없습니다. 영화 클립의 일부에는 내가 제어하려는 MC가 있습니다. 여기에 내 스크립트가 있습니다.AS3 아이들의 영화 클립을 제어합니다.

if (selectDiffText.text == "Collection 1 Easy") 
    { 
     var c1_easy:cartoonEasy = new cartoonEasy(); 
     addChild(c1_easy); 
     c1_easy.x = 412; 
     c1_easy.y = 400; 
     TweenMax.from(c1_easy, 0.5, {alpha:0, ease:Expo.easeOut}); 
    } 
    else if (selectDiffText.text == "Collection 1 Medium") 
    { 
     var c1_medium:cartoonMedium = new cartoonMedium(); 
     addChild(c1_medium); 
     c1_medium.x = 412; 
     c1_medium.y = 400; 
     TweenMax.from(c1_medium, 0.5, {alpha:0, ease:Expo.easeOut}); 
    } 
else 
    { 
     trace("ERROR!"); 
    } 

위의 코드는 라이브러리 경우 selectDiffText 변화에서 특정 무비 클립을로드합니다.

var movieList:Array = [cartoonMedium1,cartoonMedium2,cartoonMedium3,cartoonMedium4,cartoonMedium5,cartoonMedium6]; 

function getRandomMovie():MovieClip 
{ 
    var index:int = Math.floor(Math.random() * movieList.length); 
    var mcClass:Class = movieList.splice(index,1)[0]; 
    return new mcClass(); 
} 
playGame = getRandomMovie(); 
addChild(playGame); 

하자가 c1_medium 스테이지에 추가하면, c1_medium는 무작위로 그것의 라이브러리에서 동영상 클립의 1을 추가합니다 말한다. PlayGame을 MC의 내부

, 나는 mouseTarget.alpha = 0했습니다; ... 루트 수준에서 어떻게 제어 할 수 있습니까? c1_easy에는 mouseTarget.alpha = 0도 있습니다.

+0

이 코드에서 정확히 원하는 것은 무엇입니까? – Jordan

+0

각 c1_easy 및 c1_medium에는 mouseTarget이라는 mc가 있지만, 매번 c1_easy 또는 c1_medium을 스테이지에로드 할 때마다. mouseTarget의 알파 값을 제어하고 싶습니다. 수준이 무대처럼> c1_easy/c1_medium> PlayGame을 내가 원하는 것은 PlayGame을 내가 클래스 코드에 익숙하지 않아요 중 하나 c1_easy 또는 c1_medium – pizza0502

답변

0

c1_easy과 은 모두 같은 클래스를 확장해야합니다. 예를 들어 :

class c1_easy extends CartoonGenericClass{[...]} 

class c1_medium extends CartoonGenericClass{[...]} 

CartoonGenericClass에서, 당신은 변수 mouseTarget있을 것입니다. 당신은 게터/세터 사용이 공용합니다

c1_easy.mouseTarget = 0; 
c1_medium.mouseTarget = .3; 
:이 변수 mouseTarget에 액세스 할 수

protected var _mouseTarget:Number; 

public function get mouseTarget():Number{ 
    return _mouseTarget; 
} 

public function set mouseTarget(value:Number):void{ 
    // (should probably do some verification on "value" here) 
    _mouseTarget.alpha = value; 
} 

중 하나 c1_easy 또는 c1_medium를 액세스 할 수있는 모든 객체 (아무 밑줄이없는 점에 유의)

등. 이것은 표준 OOP이므로 문서를 크랙 할 시간이 될 수 있습니다. HTH!

+0

죄송합니다 추가 mouseTarget을 제어 할 루트/단계에서이다. .. 언제 그것을 타임 라인에 코드화 할까? 나는 타임 라인에서 코딩하지 않는다 ... – pizza0502

+0

물론, 나는 생각한다. 같은 방법은 아니지만 루트 객체를 통해 무대에있는 모든 객체에 액세스 할 수 있습니다. . . 모든 표시 객체는 해당 객체에 액세스 할 수 있습니다. 나는 잠시 동안 그 일을하지 않았지만, 형식은'_root.c1_whatever.mouseTarget'라고 생각합니다. 그러나 루트에'c1_whatever'를 추가하는 것은주의해야하며 다른 어떤 객체에는 추가하지 않도록주의해야합니다. 그래서 :'_root.addChild (c1_whatever)'. 이 모든 것은 ActionScript 3.0 학습으로 얻을 수있는 막대한 이점을 얻을 수 있다는 것입니다. 시작하려면 FlashDevelop를 사용하고 시작하려면 "Hello world"자습서를 읽으십시오. – iND

관련 문제