티스토리 뷰

application 이나 component 에서 swfLoader 를 사용하여 swf 를 호출하는 경우
모든 케이스가 테스트된것은 아니지만 chartBase 컴포넌트를 사용하는 swf 가 n 개 이상 있는 경우
런타임 에러가 발생합니다.

(아래 오류는 중복된 챠트를 사용해서 그렇고 다른 챠트 swf 만 있을 경우에는 좀 다른 에러가 발생합니다.)

TypeError: Error #1034: 유형 강제 변환에 실패했습니다.
mx.core::ClassFactory@674d701을(를) mx.core.IFactory(으)로 변환할 수 없습니다.

at mx.charts.series::BarSeries/get legendData()[E:\dev\flex_201_borneo\sdk\frameworks\mx\charts\series\BarSeries.as:178]

177        if (markerFactory == null)
178            markerFactory = getStyle("itemRenderer");


해결방안(?)은 아래 붉은 글씨로 표기된 부분을 참고하시면 됩니다.

* 비슷한 사례로 올라온 내용이 있습니다. 아래 url 을 참고하세요.

Runtime Error Painting Screen for Embedded App
http://www.nabble.com/Runtime-Error-Painting-Screen-for-Embedded-App-to9442490.html

Modules - Alex Harui
http://blogs.adobe.com/aharui/2007/03/modules.html

아래 샘플로 테스트 해보실 수 있습니다.
혹 정확한 내용을 이해하고 계신분들은 댓글로...ㅎㅎ

# loaderTest.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
    <![CDATA[
        import mx.charts.chartClasses.ChartBase;

        //아래 부분이 중요한 내용입니다.
        //주석을 풀어주면 런타임 오류가 발생하지 않고 주석을 해주면 오류가 발생합니다.

        //다른 해결방안으로는 swfLoader 가 실행되는 순서를 순차적으로 발생시키도 됩니다.
        //예상하기로는 서로 같은 모듈이 동시에 올라오면서 충돌하는 현상이 아닌가 합니다.
        //public var cbase:ChartBase;
    ]]>

</mx:Script>
    <mx:Panel title="SWFLoader Control Example"  height="90%" width="90%"
        paddingTop="10" paddingBottom="10" paddingLeft="10" paddingRight="10">
        <mx:Label text="The Label control of the outer application."/>
            <mx:VBox width="100%" height="100%">
                <mx:SWFLoader id="Load_1" source="@Embed(source='ChartDemo_1.swf')"  height="100%" width="100%"/>
                <mx:SWFLoader id="Load_2" source="@Embed(source='ChartDemo_2.swf')" height="100%" width="100%"/>               
                <mx:SWFLoader id="Load_1_2" source="@Embed(source='ChartDemo_1.swf')" height="100%" width="100%"/>
            </mx:VBox>
    </mx:Panel>
</mx:Application>

# ChartDemo_1.mxml - 어떤 챠트가 들어가든지 상관없습니다.ㅎㅎ

<?xml version="1.0"?>

<!-- Simple example to demonstrate the BarChart controls. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:Script>
        <![CDATA[
        import mx.collections.ArrayCollection;

        [Bindable]
        private var medalsAC:ArrayCollection = new ArrayCollection( [
            { Country: "USA", Gold: 35, Silver:39, Bronze: 29 },
            { Country: "China", Gold: 32, Silver:17, Bronze: 14 },
            { Country: "Russia", Gold: 27, Silver:27, Bronze: 38 } ]);
        ]]>
    </mx:Script>

    <mx:Panel title="BarChart Controls Example"
        height="100%" width="100%" layout="horizontal">
         <mx:BarChart id="bar" height="100%" width="45%"
            paddingLeft="5" paddingRight="5"
            showDataTips="true" dataProvider="{medalsAC}">
            <mx:verticalAxis>
                <mx:CategoryAxis categoryField="Country"/>
            </mx:verticalAxis>
            <mx:series>
                <mx:BarSeries yField="Country" xField="Gold" displayName="Gold"/>
                <mx:BarSeries yField="Country" xField="Silver" displayName="Silver"/>
                <mx:BarSeries yField="Country" xField="Bronze" displayName="Bronze"/>
            </mx:series>
        </mx:BarChart>
        <mx:Legend dataProvider="{bar}"/>
    </mx:Panel>
</mx:Application>




댓글
  • 프로필사진 비밀댓글입니다 2008.01.13 17:28
  • 프로필사진 Favicon of https://koko8829.tistory.com 열이아빠 이런 장문의 댓글을 남겨주시니 감사합니다.
    많이 소개해드릴께요..
    행복하세요.
    2008.01.13 18:26 신고
  • 프로필사진 차차 아 이것땜에 골치가 아팠는데 명쾌한 답변 감사합니다
    블로그에 담아갈께요~
    2008.06.17 11:18
  • 프로필사진 Favicon of https://koko8829.tistory.com 열이아빠 도움이 되셨다니 반갑네요.
    좀 그런것들이 많죠.
    힌트도 없이 애매한...ㅎㅎ
    2008.06.17 13:03 신고
  • 프로필사진 전영재 님 좀 짱인듯.. 2008.11.08 14:42
  • 프로필사진 Favicon of https://koko8829.tistory.com 열이아빠 아 꽤 오랫만에 올라온 댓글이네요.
    반갑습니다.
    아무래도 기술적인 내용들이
    점점 적어지는것 같아요.
    게을러져서 그런가..싶은..
    2008.11.10 12:36 신고
  • 프로필사진 박스농사 안녕하세요 랜덤타고왔습니다...(헉?) 2009.04.30 18:43
  • 프로필사진 Favicon of https://koko8829.tistory.com 열이아빠 헉...진작 보았으면 로또라도 살걸 그랬네요.^^
    랜덤으로 오시다니..
    2009.04.30 22:32 신고
  • 프로필사진 박스농사 사실은요.. MDI를 사용할때 같은 차트종류의 차트를 중복된 모듈로서 뛰울려면
    어떻게 해야될까요?... 위에 비슷한 에러가 나거든요
    hitdata관련되서..
    유형강제 변환에 실패했습니다. mx.chart::Hitdata@1xxxxxx를 mx.chart.Hitdata로 변환할수없습니다..하면서요
    2009.04.30 18:51
  • 프로필사진 박스농사 앗 자답이지만 모듈을 호출하는 application에 열이아빠님께서 적어주신대로 하니 되는군요... 감사합니다^^ 2009.04.30 18:55
  • 프로필사진 Favicon of https://koko8829.tistory.com 열이아빠 좀 다른 사례지만 역시 swfLoader를 사용하는 오류중에
    http://bugs.adobe.com/jira/browse/FLEXDMV-2035
    같은 경우에는 파이챠트에서 툴팁이 제대로 자리를 잡지 못하는 오류가 있더군요.
    2009.04.30 22:36 신고
댓글쓰기 폼