728x90
반응형

FLEX로 프로그램을 만들다가 TabNavigator를 이용하여 클릭한 사물의 정보를 표시해주는 것을 만드는데 아래와 같은 에러 메세지가 떨어졌습니다.

TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
(TypeError: Error #1009: null 의 오브젝트 참조의 프롭퍼티 또는 메소드에 액세스 할 수 없습니다.)

무슨 문제 일까..;;
한참을 고민을 했는데요. 자세히 살펴보도록 해야 할것 같아서 좀 구굴링 해보았습니다.

참고 링크
● TabNavigator : TabNavigator 컨테이너는, child containers간에서의 이동을 위해서(때문에) TabBar 컨테이너를 수중에 넣는 것으로, ViewStack 컨테이너를 확장합니다.


일단 제가 만들려고 하는 것을 간단하게 설명 드리겠습니다. 왼쪽에 여러 비행기가 나옵니다. 이 비행기를 마우스로 클릭하면 그 비행기가 가지고 있는 정보를 오른쪽에있는 TabNavigator의 정보란에 뿌려 줍니다. 
TabNavigator는 2개의 Tab으로 구성이 되어있는데 index 0번째는 그냥 항공기의 이름과 같은 정보이고, index 1은 항공기의 경로가 Datagrid로 표현이 됩니다.

간단하게 아래의 화면과 같습니다.



DB에서 정보를 읽어와서 Datagrid의 dataProvider를 접근하는데 #1009 오류가 발생했습니다. 더욱 신기한건 실후 처음에만 에러가 나고 그 후엔 데이터가 잘 들어간다는 겁니다.
처음에 만들어주지 않아 null 에러가 나는것 같은데, 그럼 처음에 어떻게 만들어줄까??

결국 구글링으로 검색 성공~!!!
검색한 사이트는 아래 입니다. 


creationPolicy="all" 로 해라..인데요. 처음에 실행할때 히든으로 감춰진 Tab은 아직 생성이 되어있지 않아서 그런건데 이것은 creationPolicy으로 해결할수 있다..뭐 그런 내용입니다. 

creationPolicy의 자세한 내용은 아래 문서를 참고 하세요.


위 구글링 결과로 아래와 같이 코드를 넣으니 손쉽게 해결 되었습니다.

728x90
반응형
728x90
반응형

오늘 컴퓨터를 키고 지돌스타님의 블로그 글을 살피던중 Flash Builder 4 Beta가 배포되었다는 소식을 접했습니다. 아직 FLEX Builder 3도 마스터하지 못했는데, 벌써 4가 ...;;

다들 아실지 모르겠지만, Adobe에서 FLEX SDK 4 (Gumbo) 부터는 FLEX Builder가 아닌 Flash Builder로 배포한다고 했습니다.

참조링크 


아직 3도 버거운 상태라 잠시 4는 미뤄두겠지만, 4에서도 3를 사용할수 있다고 합니다. 그리고 아직 4는 Beta라는 점... 빨리 습득하고 싶지만, 그래도 기본부터 차근차근 올라갈 생각입니다. FLEX4로 넘어가는 날을 고대하며..

Flash Builder 4 Beta에 대한 정보는 지돌스타님의 블로그에 자세히 나와있습니다. 참고하면 좋은 자료가 될것 같습니다.

몇가지 기능을 봤는데요. 우선 DB작업에 대한 부분이 많이 편해질것 같다는 생각이 됩니다. (아직 해보지 않았기 때문에..;;;;)


728x90
반응형
728x90
반응형
FLEX를 사용하다보면 수많은 요청에 따라서 DataGrid를 조작해야하는 일이 생긴다.
그래서 그런지 DataGrid를 이용한 컴포넌트들이 여러곳에서 쉽기편하게 사용될수 있도록 조작되고 있는데, 그중 가장 대표적인것이 구글프로젝트에서 진행하는 TreeGrid , OpenZet.org 의 여러가지 DataGrid 관련 컴포넌트들이 있다. 하지만 이것과 달리 고객에서 요청하는 특별한 케이스의 DataGrid를 만들어야 하는 경우가 있다. 

여러가지 OpenSource를 이용하여 작업을 해도 상관은 없지만, 혹시 모를 경우를 위해서 기본 DataGrid를 이용하여 상황에 맞는 커스텀한 DataGrid를 만들어보자.

일단 그 첫번째로 DB에서 받아온 데이터를 그리드에 표시할때 하나의 셀에 컬럼을 여러개 표시하는 경우이다.
아래 주소의 레퍼런스를 참고하면 좋은 정보가 될것이다.


두번째 예제로 하나의 컬럼에만 링크를 거는 예제를 만들어 보았다.


위 Datagrid를 보면 No를 클릭하였을 경우엔 링크가 걸리지 않지만, NAME 컬럼을 클릭하면 새로운 창으로 링크를 연다.
여기서 링크에 관련된 부분은 아래 부분이다.

 
			public function itemClickHdlr(data:Object):void{

				var contentURL:String = data.URL;
				
				navigateToURL(new URLRequest(contentURL), "_blank"); 
				// 선택된 글을 새창으로 띄우기	
				Alert.show("새창을 띄웠습니다.", "알림");
			} 


그리고 이번 포스트의 핵심 주제인 Datagrid 부분이다.

 
		
			
					
					
						
							
									
							
						
					
					
				
		


위 소스에서 주위해서 봐야 하는 부분이 있는데 바로 Label 필드의 click 이벤트 부분이다.
itemRenderer를 사용할 경우 본문의 Script 문의 함수를 가져다 쓸 경우 outerDocument.itemClickHdlr(data) 이런 식으로 쓴다는 것을 기억하자.
(공통되는 부분을 이렇게 사용하면 좋을 것같다. 이것을 몰라서 20개가 넘는 itemRenderer안에 하나하나 Script를 썼던 적이 있다..  혼자 개 고생 한건가???)

아래는 전체 소스이다.

 


	
	
		
	
	
		
		
		
	
	
	
	
		
			
					
					
						
							
									
							
						
					
					
				
		
	


728x90
반응형
728x90
반응형
FLEX를 사용하다보면 수많은 요청에 따라서 DataGrid를 조작해야하는 일이 생긴다.
그래서 그런지 DataGrid를 이용한 컴포넌트들이 여러곳에서 쉽기편하게 사용될수 있도록 조작되고 있는데, 그중 가장 대표적인것이 구글프로젝트에서 진행하는 TreeGrid , OpenZet.org 의 여러가지 DataGrid 관련 컴포넌트들이 있다. 하지만 이것과 달리 고객에서 요청하는 특별한 케이스의 DataGrid를 만들어야 하는 경우가 있다. 

여러가지 OpenSource를 이용하여 작업을 해도 상관은 없지만, 혹시 모를 경우를 위해서 기본 DataGrid를 이용하여 상황에 맞는 커스텀한 DataGrid를 만들어보자.

일단 그 첫번째로 DB에서 받아온 데이터를 그리드에 표시할때 하나의 셀에 컬럼을 여러개 표시하는 경우이다.
아래 주소의 레퍼런스를 참고하면 좋은 정보가 될것이다.


아래와 같은 예제를 만들어 보았다.



dataGrid 마지막 컬럼의 "制御対象空域" 부분을 보면 ArrayCollection 의 데이터 ETC1, ETC2, ETC3 를 하나의 셀에 보여지게 하는것을 확인 할수 있다.

소스는 아래를 참고..

 



	
		
	
	
	
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
	
	
	
	
	
		
		
			
			
			
				
					
					
					
					
					
				
				
				
					
				
					
							
							
							
							
				
				
				
				
				
				
				
				
				
				
			
		
			
			
				
					
					
					
					
					
					
					
					
					
					
					
					
					

					
						
							
									
									
									
									
								
							
						
					
					
				
			
		
		
		
	
	



728x90
반응형
728x90
반응형
graphics을 이용하여 비행기 형체를 그린다.
(자세한 이미지가 아닌 형체를 나타내기 위한 것이기에 선과 삼각형을 이용하여 그림)

graphics의 자세한 내용은 버터백통님의 블로그를 참조하면 좋을것 같다.

이때 나타나는 비행기의 모향은 아래와 같다.


소스는 아래를 참조
728x90
반응형
728x90
반응형

지난번 포스트의 소스를 수정해보았다.

뭔가 잘 이해가 되지는 않지만...그래도 일단은 절반의 성공?


소스는 아래와 같다. (TEST 용 소스라 주석따윈 없다..)

728x90
반응형
728x90
반응형

마우스 이벤트에서 clickdoubleClick 를 동시에 사용하려고 했더니 원하는 동작이 되지 않았다.
이유는 간단하다..더블클릭을 제대로 인식하지 않아서 그런건데..인터벌을 300ms 줘서 동작하도록 하면 끝~
자세한 내용은 밑에 블로그에서 확인하도록 하자.



위 블로그의 내용을 이용하여 예제를 한번 만들어 봤다.


소스는 아래 참고
728x90
반응형
728x90
반응형

지도의 확대축소 및 비행기의 회전등과 같은 것은 MatrixTransform을 이용해야 할것 같다.

지도의 확대 축소는 현재 Map View의 중심을 기점으로 확대 축소가 되어야 할것 같고, 비행기는 해당 위치의 좌표점을 비행기 중심으로 그려준후 그 점을 중심으로 회전시켜야 하기 때문이다.

여러가지 포스트가 있지만 아래 포스트가 가장 쉬운 예제인것 같다.


지돌스타님의 블로그의 포스트는 항상 많은 도움을 주는것 같다. 
FLEX를 이용한 컴포넌트 및 각종 자료는 거의 다 있는듯...

이것을 이용하여 비행기와 비행기 회전에 관한 예제를 작성해 보았다.



근데 왜 중심이 안잡히는거지??
ㅡ.ㅡ;;

모르겠다..


728x90
반응형
728x90
반응형

일단 Flash에서는 마우스 오른쪽 버튼에 대한 이벤트가 지원이 안된다.
이것을 나만 고민한게 아닌듯...

구글에서 진행중인 프로젝트가 있는데 IE7, 크롬, 파이어폭스3 에서 구동 확인 했다.
참고하면 좋을듯..;;; (약간 꼼수를 쓰는것 같은데..ㅋㅋㅋ)


데모

다시한번 생각하는거지만...역시 대단한 놈들..;;;
728x90
반응형
728x90
반응형
728x90
반응형

+ Recent posts