我第一次尝试使用Flash Builder,我似乎无法让它工作......
首先,我有一些非常基本的代码:
MXML:
<?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="955" minHeight="600" xmlns:ns1="*">
<fx:Script>
<![CDATA[
public function initApp():void
{
var spiro:Spiro = new Spiro();
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
</s:Application>
还有AS3:
package
{
import flash.display.Sprite;
public class Spiro extends Sprite
{
public function Spiro()
{
var mainRect:Sprite = new Sprite();
mainRect.graphics.beginFill(0x0000FF);
mainRect.graphics.drawRect(0, 0, 100, 100);
mainRect.graphics.endFill();
addChild(mainRect);
}
}
}
此代码不执行任何操作。但是当我使用WYSIWYG设计视图添加Flex组件时,组件IS可见。
另一个关键问题:Flash Builder无法连接到调试器,即使我现在已经安装了两次。有人能帮我一下吗?我已经确定我的防火墙已关闭,但这可能导致问题吗?
非常感谢。
答案 0 :(得分:2)
<?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="955" minHeight="600" xmlns:ns1="*"
creationComplete="initApp();">
<fx:Script>
<![CDATA[
public function initApp():void
{
var spiro:Spiro = new Spiro();
addElement(spiro);
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
</s:Application>
您没有调用initApp
方法。您可以在Flex应用程序创建完成后调用它,并触发creationComplete
事件。
你的Spiro类应该扩展UIComponent,因为你不能将Sprite添加到Flex应用程序中,也不能作为子项或元素添加:
package
{
import flash.display.Sprite;
import mx.core.UIComponent;
public class Spiro extends UIComponent
{
public function Spiro()
{
var mainRect:Sprite = new Sprite();
mainRect.graphics.beginFill(0x0000FF);
mainRect.graphics.drawRect(0, 0, 100, 100);
mainRect.graphics.endFill();
addChild(mainRect);
}
}
}
干杯, 罗布
答案 1 :(得分:1)
我怀疑问题在于你:
a)切勿将Spiro类作为子容器添加到容器中。 b)切勿设置Spiro类的高度或宽度。
你也会遇到问题,因为Application标签是一个spark组件。如果使用AddChild,则会抛出错误,因为您应该使用addElement。如果使用addElement方法,则会出现错误,因为Spiro类未实现IVisualElement接口。
所以,从我的角度来看,你有几个选择:
1)使用Spiro类实现IVisualElement接口。从那里你可以使用addElement方法将它作为子项添加到Application中(通常在LifeCycle方法createChildren());并且还给它一个高度和宽度(通常在lifeCycle方法updateDisplayList()中)。
2)创建一个扩展UIComponent的类,并使用addChild方法在那里添加Spiro类。然后将“wrapper”类添加为应用程序中的元素。