Flex를 배우고 간단한 RPG를 연습하려고합니다. 뷰 상태를 사용하여 화면 간을 전환합니다. 지금 나는 내 캐릭터 정보를 보여주는 HomeView.mxml, 내 인벤토리 아이템을 보여주는 InventoryView.mxml, 장비 아이템을 보여주는 EquipmentView.mxml을 가지고있다. 각각은 각각의 뷰 상태를가집니다.Flex에서 뷰 상태가 변경 될 때 함수 실행
을 주 mxml 파일에 넣으면 게임의 항목 및 ArrayCollection에 대한 전역 변수를 만듭니다. 그것은 재고 및 장비에 대한 mxml에 2 개의 라벨을 생성합니다. 라벨을 클릭하면 currentState = "EquipmentView"또는 "InventoryView"를 설정하는 클릭 핸들러가 호출됩니다.
이 상태가 변경되고 각각의 뷰가 올바르게 표시됩니다 .
내 EquipmentView 상태에 문제가 있습니다. 처음 상태에 들어갈 때, 장비에 이미지를 표시하고 클릭 핸들러를 설정하는 creationComplete 함수가 있습니다. 항목을 클릭하면 장비를 "정리 해제"하고 장비 목록에서 제거하고 이미지를 제거합니다. 이 또한 잘 작동하지만 재고보기 및 항목을 "장비"및 EquipmentView 돌아갈 때 이미지가 표시되지 않습니다. 내 equipmentList 변수의 길이를 계산하고보기를 전환 할 때 정확한 레이블을 가지고 있지만 이미지를 다시 표시 할 수 없습니다.
보기가 변경되면 내 displayEquippedItems() 함수 (원래 creationComplete에서 호출 됨)를 호출 할 수 있습니까?
protected function displayEquippedItems():void
{
Alert.show("Displaying Items");
for (var i:int = 0; i<c.equippedItems.length; i++)
{
var item:Item = c.equippedItems.getItemAt(i) as Item;
switch (item.type)
{
case 'Weapon':
var il:ItemImage = new ItemImage(item);
il.source = "../assets/sword.gif";
il.scaleX=.25;
il.scaleY=.25;
il.horizontalCenter=-80;
il.verticalCenter=-30;
il.addEventListener(MouseEvent.CLICK, equippedItemClicked);
equipGroup.addElement(il);
break;
default:
Alert.show("Didnt find a weapon");
break;
}
}
}
ItemImage 내가 그 이미지 구성 요소를 확장하고 단지 그렇게 내가 이름을 얻을 수 표시되는 항목 입력에 변수 "항목을"설정 정의 된 클래스 (이다 : 여기
내 기능입니다 결국 또한 equipGroup 내가 당신이 원하는 무엇을 믿는 달성하기 위해 몇 가지 방법이 있습니다
updateComplete 완벽를 입력 할 때
enterState
이벤트 핸들러를 사용하여, 당신의 코드는 정말 감사 실행합니다! stateChangeComplete를 사용했지만 제대로 된 장소에서 듣지 않아 couldnt이 작동하도록했습니다. updateComplete는 내가 원하는 것을 정확하게 수행하고있는 것처럼 보입니다. 나는 쇼도 시도 할 것입니다. – Aheinlein