prog.hu: Dinamikus elhelyezés. Hogyan? 1.
http://prog.hu/tudastar/134115/Dinamikus+elhelyezes+Hogyan.html
modified 2010-05-06 12:02 (GMT+01:00) - add mask (there was a little problem on fullScreen with event handlers)
♥0 |
Line 72 |
Modified 2011-05-06 19:02:37 |
MIT License
archived:2017-03-20 13:14:26
ActionScript3 source code
/**
* Copyright szbzs2004 ( http://wonderfl.net/user/szbzs2004 )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/yW3w
*/
package {
[SWF(width = "465", height = "465", backgroundColor = "0xFFFFFF", frameRate = "25")]
import flash.display.DisplayObject;
import flash.display.MovieClip;
import flash.display.Shape;
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.events.MouseEvent;
import caurina.transitions.Tweener;
public class DEH extends Sprite {
private var content:XML =
<content>
<menuItem barColor="0x0000ff" titleColor="0x33ffff" title="home"/>
<menuItem barColor="0xff0000" titleColor="0xffffee" title="work"/>
<menuItem barColor="0xff00ff" titleColor="0xffffff" title="about me/who am I"/>
<menuItem barColor="0x00ff00" titleColor="0x000000" title="contact"/>
</content>;
public function DEH() {
var childY:Number = 0;
for each (var child:XML in content.*) {
var mc:MovieClip = createMenuItem(uint(child.@barColor), uint(child.@titleColor), child.@title);
mc.mask = createMask();
mc.x = mc.xLeft;
mc.y = childY;
childY += mc.height;
addChild(mc);
}
}
private function createMenuItem(barColor:uint, titleColor:uint, title:String):MovieClip {
const TITLE_LEFT_MARGIN:Number = 20;
const TITLE_RIGHT_MARGIN:Number = 20;
const TITLE_SCALE:Number = 4;
var tf:TextField = new TextField();
tf.textColor = titleColor;
tf.autoSize = TextFieldAutoSize.LEFT;
tf.selectable = false;
tf.mouseEnabled = false;
tf.text = title;
tf.x = TITLE_LEFT_MARGIN;
tf.scaleX = tf.scaleY = TITLE_SCALE;
var mc:MovieClip = new MovieClip();
mc.addChild(tf);
mc.graphics.beginFill(barColor);
mc.graphics.drawRect(0, 0, TITLE_LEFT_MARGIN + tf.width + TITLE_RIGHT_MARGIN, tf.height);
mc.graphics.endFill();
mc.addEventListener(MouseEvent.MOUSE_OVER, itemOver);
mc.addEventListener(MouseEvent.MOUSE_OUT, itemOut);
mc.buttonMode = true;
mc.xLeft = TITLE_RIGHT_MARGIN - mc.width;
mc.xRight = 0;
mc.animTime = mc.width / 500;
return(mc);
}
private function itemOver(e:MouseEvent):void {
var menuItem:MovieClip = MovieClip(e.currentTarget);
Tweener.addTween(menuItem, {x:menuItem.xRight, time:menuItem.animTime, transition:"easeOutQuad"});
}
private function itemOut(e:MouseEvent):void {
var menuItem:MovieClip = MovieClip(e.currentTarget);
Tweener.addTween(menuItem, {x:menuItem.xLeft, time:menuItem.animTime, transition:"easeOutQuad"});
}
private function createMask():DisplayObject {
var s:Shape = new Shape();
s.graphics.beginFill(0x00ff00);
s.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
s.graphics.endFill();
addChild(s);
return(s);
}
}
}