2012-07-14 2 views
0

문제를 생성하고 문제를 인식하는 데 6 개월 간의 간격이 있기 때문에 심각한 문제가 있습니다. 위로 연말에, 나는 몇몇 그래픽스를 추가하고 플래시 전용 웹 사이트에서 일부 텍스트를 변경하라는 요청을 받았습니다. 이 사이트는 꽤 복잡했고 처음부터 그러한 코드를 만들지는 않았지만 플래시에 대한 사전 경험이 있었고 그래픽을 추가하고 내부 텍스트의 일부를 업데이트 할 수있었습니다. 그래픽을 추가하는 과정에서 새로운 요소를 포함하여 모든 요소가 포함 된 main_mc를 확장해야했습니다. 당시에는 알지 못했지만 이제는 main_mc 심볼의 속성을 변경하면 별도의 Main.ac 파일에서 생성 된 복잡한 Tweening 액션이 비활성화 된 것으로 보입니다. Main.ac 파일을 건드리지 않았고 main_mc 및 새 그래픽이 포함 된 해당 FLA 파일에 코드를 변경하지 않았지만 어떻게 든이 변경 사항은 트위스트에 주름을 넣었습니다. Main.swf의 이전 버전을 내 개발 환경에 적용하면 액션이 다시 작동합니다 (자식 SWF 파일에 의해 트리거되는 경우에도). 여기 플래시 AS3 : 메인 무비 클립을 확대하고 새 요소를 추가 한 후 TweenMax가 작동을 멈췄습니다.

내가이에 묶여 생각 클래스 파일의 코드 : 자신과 클라이언트에 대한 일부 공공 당황의 위험에

public function showSamples(event:Event = null):void 
    { 
     // create new timeline to allow us to move the desk elements back into place 
     showSamplesTimeline = new TimelineMax({onReverseComplete: resetSamples}); 

     // create array of all desk elements 
     var deskElements:Array = /* of TweenMax */ [ 
      TweenMax.to(main_mc.memorandum_mc, 1, {x: main_mc.memorandum_mc.x - 1700}), 
      TweenMax.to(main_mc.phone_mc, 1, {x: main_mc.phone_mc.x - 1700}), 
      TweenMax.to(main_mc.todo_mc, 1, {x: main_mc.todo_mc.x - 1900}), 
      TweenMax.to(main_mc.menuMask_mc, 1, {x: main_mc.menuMask_mc.x - 1700}), 
      TweenMax.to(main_mc.menu_mc, 1, {x: main_mc.menu_mc.x - 1700}), 
      TweenMax.to(main_mc.flags_mc, 1, {x: main_mc.flags_mc.x - 1700}), 
      TweenMax.to(main_mc.clocks_mc, 1, {x: main_mc.clocks_mc.x - 1700}), 
      TweenMax.to(main_mc.device_mc, 1, {x: main_mc.device_mc.x - 1700}), 
      TweenMax.to(main_mc.content_mc, 1, {x: main_mc.content_mc.x - 1700}), 
      TweenMax.to(main_mc.coffeeContainer_mc, 1, {x: main_mc.coffeeContainer_mc.x - 1700}) 
     ]; 

     main_mc.printer_mc.translate_btn.mouseEnabled = false; 

     /* 
     var memorandumTween:TweenMax = ; 
     var memorandum_mc, 
     var phone_mc, 
     var todo_mc, 
     var menuMask_mc, 
     var menu_mc, 
     var flags_mc, 
     var clocks_mc, 
     main_mc.device_mc, 
     main_mc.content_mc, 
     main_mc.coffeeContainer_mc 
     */ 


     // tween all desk elements out out of the state somewhere... 
     showSamplesTimeline.insertMultiple(deskElements); 
     //showSamplesTimeline.insertMultiple(TweenMax.allTo(deskElements, 1, {x:-400})); 
     // bring in the printer element for printn' out samples... arrgh! 
     showSamplesTimeline.insert(TweenMax.fromTo(main_mc.printer_mc, 0.5, {x: 2000, y: -140},{x: 800, y: -140.0, delay: 0.25})); 
     showSamplesTimeline.append(TweenMax.to(main_mc.printer_mc, 0.5, {y: -340.0, delay: 0.25, onComplete: showGermanSample})); 
    } 

    /** 
    * 
    */ 
    public function showGermanSample():void 
    { 
     // create short reference to the loader content 
     var container = main_mc.printer_mc.paper_mc.getChildAt(0).contentLoaderInfo.content; 
     // move the scroller out of view 
     container.scroller.x = 2000; 
     // hide the english translation 
     container.germanContentDropShadow_mc.visible = false; 
     container.englishContentDropShadow_mc.visible = false; 
     container.content_mc.englishContent_mc.visible = false; 
     // tween the paper into view and when complete put the scroller next to the german sample 
     TweenMax.to(main_mc.printer_mc.paper_mc, 1, { 
        y: 443, 
        onComplete: function():void 
        { 
         container.scroller.x = 599; 
         container.germanContentDropShadow_mc.visible = true; 
         main_mc.printer_mc.translate_btn.mouseEnabled = true; 
        } 
     }); 
    } 

    /** 
    * 
    */ 
    public function showEnglishSample(event:Event = null):void 
    { 
     // create short reference to the loader content 
     var container = main_mc.printer_mc.paper_mc.getChildAt(0).contentLoaderInfo.content; 
     // move the scroller out of view 
     container.scroller.x = 2000; 
     // move the paper to make room for the english content 
     TweenMax.to(main_mc.printer_mc.paper_mc, 0.5, {x: -454}); 
     // show the english sample 
     container.content_mc.englishContent_mc.visible = true; 
     // tween the english sample into view and when complete put the scoller next to the english sample 
     TweenMax.from(container.content_mc.englishContent_mc, 1, { 
         y: -1000, 
         delay: 0.5, 
         onComplete: function():void 
         { 
          container.scroller.x = 1210; 
          container.englishContentDropShadow_mc.visible = true; 
          main_mc.printer_mc.translate_btn.mouseEnabled = false; 

         } 
     }); 
     // tween the paper 
     TweenMax.to(main_mc.printer_mc.paper_mc, 0.5, {x: -142, delay: 1.5}); 
    } 

    /** 
    * 
    */ 
    public function hideSamples(event:Event = null):void 
    { 
     // back to the future 
     showSamplesTimeline.reverse(); 
    } 

    /** 
    * 
    */ 
    public function resetSamples(event:Event = null):void { 
     // unload sampleContentLoader 
     sampleContentLoader.unload(); 
     // reset position 
     main_mc.printer_mc.paper_mc.x = 164; 
     main_mc.printer_mc.paper_mc.y = -600; 
     trace(main_mc.printer_mc.x); 
     trace(main_mc.printer_mc.y); 
     // remove loader content 
     main_mc.printer_mc.paper_mc.removeChildAt(0); 
     // kill tweens 
     showSamplesTimeline.kill(); 
    }  

,하지만 난 정말 도움을 사용할 수 있기 때문에 라이브 웹 사이트는 다음과 같습니다. (제거됨)

서비스 -> 샘플로 이동하십시오. 버튼을 클릭 할 수 있습니다 (예 : 법률에 따라 샘플 주제로 드릴 다운합니다. 이전 작업 버전에서는 마지막 주제를 클릭합니다. 소송 및 화면이 무대 오른쪽으로 움직여서 영어로 된 문서 이미지가 프린터에서 나오는 것처럼 보입니다. 그런 다음 사용자가 번역 버튼을 누르면 독일어로 된 두 번째 이미지가 나옵니다. 다시 선택을 클릭하면 무대 왼쪽으로 돌아와 기본 화면으로 돌아갑니다. 물론 이것은 작동하지 않습니다. (제거)

아마 하루 정도에 dev에 복사본을 제거합니다 :

내가 dev에 위치에서 작업 버전 업을 넣었습니다.

정말이 문제를 해결하는 데 도움이됩니다.

[편집] 이전 main_mc가 2359x1692이고 새 것이 2967.65x1939.35라고 추가해야합니다. 무대 위의 위치는 똑같습니다 : -800 x 0. 새로운 치수가 6 개월 전과 같이 어떻게 도착했는지 정확히 모르겠지만 추가 그래픽 요소를 맞추려면 확대가 필요합니다. 클라이언트는 와이드 스크린 모니터에서보기 좋게 원래 개발자의 넓은 영역을 필요로했습니다.

감사합니다.

+0

확인. 내가 고쳐 준다고 생각해. 내가 추가 한 그래픽 요소 중 하나가 다른 그래픽 요소를 대체했습니다. 대체는 비트 맵 이었지만 원래는 심볼이었고 위의 트윈 배열의 일부였습니다 - memorandum_mc. 나는 이것을 알아 차리고 비트 맵을 같은 이름의 심볼로 바꿨다. 이제 애니메이션이 작동하고있다. 나는 누락 된 상징이 모든 것을 던졌다 고 생각한다. Flash가 나에게 실제 오류 메시지를 보내면 좋았을 것입니다. "Error : missing symbolold 'memorandum_mc',"또는 뭔가와 같은 것이 있으면 쉽게 해결할 수있었습니다. – mrmacross

답변

0

위의 주석을 참조하십시오. 학습 할 교훈 : 기존 작품을 바꿀 때 다른 곳에서 언급 된 경우 모든 기호를 동일하게 유지했는지 확인하십시오. 기본 사항. 그러나 적어도 그것은 쉽게 고칠 수있는 것입니다.

관련 문제