Apache flex 如何在Flex4.5.1中绘制矩形?
基本上这是行不通的。我用这个问题来改进——仍然没有什么。Apache flex 如何在Flex4.5.1中绘制矩形?,apache-flex,actionscript,Apache Flex,Actionscript,基本上这是行不通的。我用这个问题来改进——仍然没有什么。 为什么不使用UIComponent.graphics绘图功能,而不是创建三个不同的对象 <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"
为什么不使用UIComponent.graphics绘图功能,而不是创建三个不同的对象
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="640" minHeight="480">
<s:layout>
<s:BasicLayout/>
</s:layout>
<fx:Script>
<![CDATA[
import flash.display.Shape;
import flash.display.Sprite;
import mx.core.UIComponent;
import spark.core.SpriteVisualElement;
private var rectangle:Sprite = new Sprite();
private var insterter:UIComponent = new UIComponent();
private var theme:SpriteVisualElement = new SpriteVisualElement();
private function main():void
{
rectangle.graphics.lineStyle(1,0x0000FF,1.0);
rectangle.graphics.drawRect(0,0,200,50);
theme.addChild(rectangle);
this.addElement(theme); //tried canvas.addElement
const WIDTH:int = 20;
const HEIGHT:int = 20;
/*var grid:Array = new Array();
for(var y:int = 0; y < HEIGHT; y++) {
var row:Array = new Array();
for (var x:int = 0; x < WIDTH; x++) {
row.push(/*random object*//*);
}
/ grid.push(row);
}*/
}
]]>
</fx:Script>
<!--<spark:Canvas id="canvas" x="34" y="10" width="90%" height="90%" textAlign="center">
</mx:Canvas>-->
</s:Application>
仍然不起作用。我使用的是flex project而不是纯actionscript。请确保通过在应用程序MXML标记中添加creationComplete=main属性来调用主函数。当然,我写的代码如果放在一个被调用的函数中,应该可以工作。噢,噢,PS…..该死的。很抱歉是的,现在很好用。我忘了fx需要creationComplete=main,与mx相同。Flex 4有一个可以从MXML或as使用的Rect组件。不同的矩形是否会合成到一个DisplayObject中,取决于附加到它们的交互方式。
var uic:UIComponent = new UIComponent();
this.addElement(uic);
uic.width = uic.height = 50;
uic.graphics.lineStyle(1,0x000000);
uic.graphics.drawRect(0,0,50,50);