topical media & game development
physic-flex-ape-playground-main.mx
physic-flex-ape-playground-main.mx
[swf]
[flash]
flex
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
creationComplete="initApp()" currentState="circleState"
>
<mx:states>
<mx:State name="circleState">
<mx:AddChild relativeTo="{controlbar1}" position="lastChild">
<mx:NumericStepper minimum="1" maximum="100" stepSize="5" id="circleRadius" value="20"/>
</mx:AddChild>
<mx:AddChild relativeTo="{controlbar1}" position="lastChild">
<mx:ColorPicker id="itemColor"/>
</mx:AddChild>
<mx:AddChild relativeTo="{controlbar1}" position="lastChild">
<mx:CheckBox label="Fixed" id="isFixed" fontStyle="normal" fontWeight="bold" fontSize="14"/>
</mx:AddChild>
<mx:SetProperty target="{radiobutton1}" name="selected" value="true"/>
</mx:State>
</mx:states>
<mx:Script>
<![CDATA[
import org.cove.ape.RectangleParticle;
import org.cove.ape.AbstractParticle;
import org.cove.ape.Group;
import org.cove.ape.CircleParticle;
import org.cove.ape.AVector;
import org.cove.ape.APEngine;
private var contentHolder:Sprite=new Sprite();
private var defaultGroup:Group=new Group();
private var mousePosition:Point;
private function initApp():void{
spriteWrapper.addChild(contentHolder);
addEventListener(Event.ENTER_FRAME,run);
APEngine.init(1/3);
APEngine.container=contentHolder;
APEngine.addMasslessForce(new AVector(0,8));
defaultGroup.collideInternal=true;
var ground:RectangleParticle=new RectangleParticle(this.width/2,this.height-200,this.width-50,10,0,true);
ground.setFill(0xCCCCCC);
defaultGroup.addParticle(ground);
APEngine.addGroup(defaultGroup);
viewScreen.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDown);
}
private function run(e:Event):void{
APEngine.step();
APEngine.paint();
}
private function addSelectedParticle():void{
var createdParticle:AbstractParticle;
createdParticle=createCircle();
createdParticle.setFill(itemColor.selectedColor);
defaultGroup.addParticle(createdParticle);
}
private function createCircle():AbstractParticle{
var circle:CircleParticle=new CircleParticle(mousePosition.x,mousePosition.y,circleRadius.value,isFixed.selected,3,0.7);
return circle;
}
private function onMouseDown(e:MouseEvent):void{
mousePosition=new Point(e.localX,e.localY);
addSelectedParticle()
}
]]>
</mx:Script>
<mx:Panel bottom="0" right="0" top="0" left="0" id="panel1" borderColor="#040000">
<mx:Canvas id="viewScreen" width="100%" height="100%">
<mx:UIComponent id="spriteWrapper" />
</mx:Canvas>
<mx:ControlBar width="100%" id="controlbar1">
<mx:VBox id="shapeBox">
<mx:RadioButtonGroup id="particleGroup"/>
<mx:RadioButton label="CircleParticle" id="radiobutton1" click="this.currentState='circleState'" groupName="particleGroup"/>
<mx:RadioButton label="RectangleParticle" groupName="particleGroup"/>
<mx:RadioButton label="WheelParticle" groupName="particleGroup"/>
</mx:VBox>
</mx:ControlBar>
</mx:Panel>
</mx:Application>
(C) Æliens
04/09/2009
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.