block文件:
package test.contributionlist
{
public class CustomerPickerListBlock extends Sprite
{
public function CustomerPickerListBlock(title:String,index:int)
{
super();
// import com.demonsters.debugger.MonsterDebugger;
// MonsterDebugger.initialize(this);
this.titleStr = title;
this.index = index;
createPlayerBlock();
}
public var title:TextField;
public var subjectBg:Image;
public var categoryBtn:Button;
private var index:int;
public var titleStr:String;
public static const textureName:String="QuestionBankView";
public function createPlayerBlock():void
{
title = new TextField(320,36,Util.sliceToMax(titleStr,10),'jt_XML',18,0xffffffff,true);
title.hAlign = HAlign.LEFT;
title.vAlign=VAlign.TOP;
title.x=100;
title.y=27;
title.touchable=false;
categoryBtn=new Button();
categoryBtn.defaultSkin=new Image(Assets.getTextureAtlas(textureName).getTexture("类别"+(index+1)));
categoryBtn.addEventListener(Event.TRIGGERED, btnClickedHandler);
this.addChild(categoryBtn);
this.addChild(title);
}
private function btnClickedHandler(event:Event):void
{
SoundController.getInstance().playBtnDown();
var obj:Object={};
obj.index=this.index;
obj.title=this.titleStr;
trace("clicked index is:"+index+"obj.title is :"+obj.title);
this.dispatchEventWith("buttonClicked",true,obj);
}
//关闭鼠标事件监听
public function removeListeners():void
{
subjectBg.removeEventListener(Event.TRIGGERED, btnClickedHandler);
}
public override function dispose():void
{
super.dispose();
removeListeners();
//if(ContributionImg)ContributionImg.dispose();
}
}
}
CustomerPickerList文件:
package test.component
{
public class CustomerPickerList extends Sprite
{
[Dispatcher]
public var dispatcher:EventDispatcher;
[Inject]
public var listSprite:Sprite;
public static const textureName:String="QuestionBankView";
public var categoryBtn:Button;//请设置分类 按钮
public var title:TextField;//请设置分类 文字
public var titleStr:String;
public var isfirst:Boolean;
public function CustomerPickerList()
{
super();
import com.demonsters.debugger.MonsterDebugger;
MonsterDebugger.initialize(this);
//var image:Image = new Image( Assets.getTexture("changjing1"));
//this.addChildAt(image,0)
this.addEventListener("buttonClicked", btnClickedHandler2);
init();
}
public function init():void
{
isfirst=true;
categoryBtn=new Button();
categoryBtn.defaultSkin=new Image(Assets.getTextureAtlas(textureName).getTexture("类别1"));
categoryBtn.addEventListener(Event.TRIGGERED, btnClickedHandler);
this.addChild(categoryBtn);
titleStr="请设置分类";
title = new TextField(320,36,Util.sliceToMax(titleStr,10),'jt_XML',18,0xffffffff,true);
title.hAlign = HAlign.LEFT;
title.vAlign=VAlign.TOP;
title.x=100;
title.y=27;
title.touchable=false;
this.addChild(title);
}
override public function dispose():void
{
super.dispose();
}
private function btnClickedHandler(event:Event):void
{
if(isfirst){
createContainer();
var obj1:Object = {"title":"类1","index":0};
var obj2:Object = {"title":"类2","index":1};
var obj3:Object = {"title":"类3","index":2};
var obj4:Object = {"title":"类4","index":3};
var array:Array=new Array(obj1,obj2,obj3,obj4);
for(var i:int=0; i<array.length; i++)
{
var obj:Object = array[i];
var tmpRank:CustomerPickerListBlock = new CustomerPickerListBlock(obj.title,obj.index);
ListContainer.addChild(tmpRank);
}
this.addChild(ListContainer);
isfirst=false;
}
}
private function btnClickedHandler2(event:Event):void
{
//SoundController.getInstance().playBtnDown();
var obj:Object = event.data;
var index:int = obj.index;
trace("clicked catebtn and is :"+index);
categoryBtn.defaultSkin=new Image(Assets.getTextureAtlas(textureName).getTexture("类别"+(index+1)));
trace("titlestr :"+obj.title);
title.text=obj.title;
ListContainer.removeChildren(0,-1);
this.removeChild(ListContainer);
isfirst=true;
}
public var ListContainer:ScrollContainer;
public function createContainer():void
{
const layout:VerticalLayout = new VerticalLayout();
layout.gap = -2;
layout.paddingTop = 5;
layout.paddingRight = 0;
layout.paddingBottom = 0;
layout.paddingLeft = 0;
layout.horizontalAlign = VerticalLayout.HORIZONTAL_ALIGN_LEFT;
layout.verticalAlign = VerticalLayout.VERTICAL_ALIGN_TOP;
ListContainer = new ScrollContainer();
ListContainer.x = 0;
ListContainer.y = 60;
ListContainer.width = 304;
ListContainer.height = 350;
ListContainer.layout = layout;
//when the scroll policy is set to on, the "elastic" edges will be
//active even when the max scroll position is zero
ListContainer.scrollerProperties.verticalScrollPolicy = Scroller.SCROLL_POLICY_ON;
ListContainer.scrollerProperties.horizontalScrollPolicy = Scroller.SCROLL_POLICY_OFF;
}
}
}