Flex 4:获取按下的对象
Flex 4: Get the pressed object
我的皮肤:
<s:DataGroup id="view1" width="100%" height="100%" itemRenderer="views.itemRenderers.BrickItemRenderer" dataProvider="{hostComponent.createArray()}">
<s:layout>
<s:TileLayout />
</s:layout>
</s:DataGroup>
创建对象的我的视图'bricks'
[Bindable]
public function createArray():ArrayCollection
{
var dataBrick:ArrayCollection = new ArrayCollection();
var data:DataAboutBrick;
for (var x:int = 0; x < 5; x++)
for (var y:int = 0; y < 7; y++)
{
data = new DataAboutBrick();
data.x = 0;
data.y = 0;
data.color = colorBrick;
dataBrick.addItem(data);
}
return dataBrick;
}
Class DataAboutBrick 用于保存有关对象的数据:
public class DataAboutBrick extends Object
{
public function DataAboutBrick()
{
super();
}
public var x:int;
public var y:int;
public var color:uint = 0xFF0000;
public var id:String;
}
调解员:
private function btnBricknew_clickHandler(event:BaseBrickEvent):void
{
view.colorBrick = model.currentColor;
}
Mediator 在单击对象时更改所有对象的颜色。并且只需要改变被压物体的颜色即可。
假设您定义了 Brick 和 BrickSkin,您可以在 BrickItemRenderer 中定义更改颜色的功能,如下所示:
<?xml version="1.0"?>
<spark:DefaultComplexItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:spark="spark.skins.spark.*">
<fx:Script><![CDATA[
[Bindable("dataChanged")]
override public function set data(value:Object):void
{
super.data = value;
var brick:Brick = new Brick();
brick.colorBrick = value.color;
brick.addEventListener(MouseEvent.CLICK, brickClicked,false,0,true);
this.addElement(brick);
}
private function brickClicked(event:Event)
{
event.stopImmediatePropagation();
event.preventDefault();
data.color = 0x00FF00;// Please make sure your color variable defined in DataAboutBrick.as is Bindable.
}
]]></fx:Script>
</spark:DefaultComplexItemRenderer>
我的皮肤:
<s:DataGroup id="view1" width="100%" height="100%" itemRenderer="views.itemRenderers.BrickItemRenderer" dataProvider="{hostComponent.createArray()}">
<s:layout>
<s:TileLayout />
</s:layout>
</s:DataGroup>
创建对象的我的视图'bricks'
[Bindable]
public function createArray():ArrayCollection
{
var dataBrick:ArrayCollection = new ArrayCollection();
var data:DataAboutBrick;
for (var x:int = 0; x < 5; x++)
for (var y:int = 0; y < 7; y++)
{
data = new DataAboutBrick();
data.x = 0;
data.y = 0;
data.color = colorBrick;
dataBrick.addItem(data);
}
return dataBrick;
}
Class DataAboutBrick 用于保存有关对象的数据:
public class DataAboutBrick extends Object
{
public function DataAboutBrick()
{
super();
}
public var x:int;
public var y:int;
public var color:uint = 0xFF0000;
public var id:String;
}
调解员:
private function btnBricknew_clickHandler(event:BaseBrickEvent):void
{
view.colorBrick = model.currentColor;
}
Mediator 在单击对象时更改所有对象的颜色。并且只需要改变被压物体的颜色即可。
假设您定义了 Brick 和 BrickSkin,您可以在 BrickItemRenderer 中定义更改颜色的功能,如下所示:
<?xml version="1.0"?>
<spark:DefaultComplexItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:spark="spark.skins.spark.*">
<fx:Script><![CDATA[
[Bindable("dataChanged")]
override public function set data(value:Object):void
{
super.data = value;
var brick:Brick = new Brick();
brick.colorBrick = value.color;
brick.addEventListener(MouseEvent.CLICK, brickClicked,false,0,true);
this.addElement(brick);
}
private function brickClicked(event:Event)
{
event.stopImmediatePropagation();
event.preventDefault();
data.color = 0x00FF00;// Please make sure your color variable defined in DataAboutBrick.as is Bindable.
}
]]></fx:Script>
</spark:DefaultComplexItemRenderer>