Depuis quelques temps, je montre mon travail a qui veut le voir. Je ne commence l’AS3 que depuis près d’un an maintenant, et chaque avis est vraiment enrichissant. Mais je me rends compte aujourd’hui que je n’ai encore jamais montré vraiment ce qu’il était possible de faire avec le package milky.
L’idée de thecaptain était vraiment pas mal, je m’en rends compte maintenant. Il suffit donc d’un simple import de “martian.milky.core.Factory” pour créér n’importe quelle forme créable dans le framework.
Une petite feature qui fait plaisir, c’est le “editable:Boolean = false”. Passez le a true, et l’affichage des points et des ancres qui composent la forme sont affichés, et modifiables par drag’n'drop. Les touches shift et alt ont un role pré-définis pour pouvoir éditer les anches, les supprimer etc…
Rajoutez “martian.milky.core.Playdoh”, et vous obtiendrez de quoi rendre votre objet draggrable, rotatable, et scalable (par le milieu) avec de simples booléen dans le constructeur.
Voici une petite démo, de quelques-un des objets qu’on peut fabriquer via la Factory.
Tous les objets sont draggables, rotatables, et scalables grâce a la classe Playdoh : le drag est accessible par drag’n'drop simple, et le rotate’n’scale est accessible par drag’n'drop + shift.
Le dernier objet créé, le gros carré noir transparent, est le seul éditable. Double-cliquez dessus pour avoir accès a ses points. Ils sont eux aussi draggable, et l’appui sur shift modifie les anches. Tout ca natif, (dés)activable par un booleen
Voici les différentes implémentations utiles des classes du package martian.milky.core qui ont servi a cette démo :
- martian.milky.core.Playdoh :
public function Playdoh(object:DisplayObject, draggable:Boolean = true, rotatable:Boolean = true, scalable:Boolean = true, centered:Boolean = true, debugBounds:Boolean = false):void;
- martian.milky.core.Factory :
// Ellipse static public function getEllipse(width:Number, height:Number, shapestyle:ShapeStyle = null, shadowstyle:ShadowStyle = null, editable:Boolean = false):Ellipse;
// Ligne static public function getLine(length:Number, angle:Number, shapestyle:ShapeStyle = null, shadowstyle:ShadowStyle = null, editable:Boolean = false):Line;
// Rectangle static public function getRectangle(width:Number, height:Number, shapestyle:ShapeStyle = null, shadowstyle:ShadowStyle = null, editable:Boolean = false):Rectangles;
// Polygone Régulier (Hexagone etc...) static public function getRegularpolygon(edges:int, radius:Number, shapestyle:ShapeStyle = null, shadowstyle:ShadowStyle = null, editable:Boolean = false):Regularpolygon;
// Rectangle a bord ronds static public function getRoundrectangle(width:Number, height:Number, radius:Number = 20, shapestyle:ShapeStyle = null, shadowstyle:ShadowStyle = null, editable:Boolean = false):Roundrectangles;
// Polygone en étoile (pour faire des macarons) static public function getStarpolygon(spikes:int, radius1:Number, radius2:Number, shapestyle:ShapeStyle = null, shadowstyle:ShadowStyle = null, editable:Boolean = false):Starpolygon;
// Triangles static public function getTriangle(width:Number, height:Number, shapestyle:ShapeStyle = null, shadowstyle:ShadowStyle = null, editable:Boolean = false):Triangle;
// Texte avec du fond static public function getLabel(str:String, textstyle:TextStyle = null, shapestyle:ShapeStyle = null, shadowstyle:ShadowStyle = null):Label;
// Liens hypertextes static public function getLink(str:String, url:String, textstyle:TextStyle = null, shapestyle:ShapeStyle = null, shadowstyle:ShadowStyle = null):Link;
// Loader de .swf static public function getFlash(url:String, shadowstyle:ShadowStyle = null):Flash;
// Loader d'image avec cadre static public function getImage(url:String, frame:String = null, shadowstyle:ShadowStyle = null):Image;
// Loader de vidéo (streaming) static public function getMovie(url:String, controls:Boolean = true, autoplay:Boolean = false, shadowstyle:ShadowStyle = null):Movie;
// Loader de mp3 (streaming) static public function getMusic(url:String, controls:Boolean = true, autoplay:Boolean = false, shadowstyle:ShadowStyle = null):Music;
// Webcam static public function getWebcam(frame:String = null, shadowstyle:ShadowStyle = null):Webcam;
// Objet de style de forme static public function getShapeStyle(fillColor:int, fillAlpha:Number, lineThick:Number, lineColor:int, lineAlpha:Number):ShapeStyle;
// Objet de style de texte static public function getTextStyle(fontFamily:String, fontSize:int, fontColor:int, fontAlign:String, fontSpacing:Number):TextStyle;
// Object de style d'ombré static public function getShadowStyle(distance:int, angle:Number, color:int, alpha:Number, blur:int):ShadowStyle;
Comments (2)
Bonjour,
Première fois que je fréquente ton blog, et je le bookmark.
Merci pour la découverte de cette classe qui semble bien pratique.
Merci ! Dès que j’aurai l’occasion je ferai une doc pour expliquer comment ca marche