Apache flex 类中的this.width始终返回相同的值
在我的AS3类中,我调用Apache flex 类中的this.width始终返回相同的值,apache-flex,flash,actionscript-3,Apache Flex,Flash,Actionscript 3,在我的AS3类中,我调用this.width,它返回的值始终为1,即使考虑到对象的内容,这是不可能的 这是AS3的标准行为吗 这个类的简单版本发布在下面。它附加到仅包含一个简单六边形的MovieClip符号上 package { import flash.display.*; import flash.utils.*; import flash.events.*; public class Hexagon extends MovieClip {
this.width
,它返回的值始终为1,即使考虑到对象的内容,这是不可能的
这是AS3的标准行为吗
这个类的简单版本发布在下面。它附加到仅包含一个简单六边形的MovieClip符号上
package {
import flash.display.*;
import flash.utils.*;
import flash.events.*;
public class Hexagon extends MovieClip
{
var startWidth:Number;
var startHeight:Number;
public function Hexagon()
{
var myTimer:Timer = new Timer(2000);
myTimer.addEventListener(TimerEvent.TIMER, timerFunction);
myTimer.start();
startWidth = this.width;
startHeight = this.height;
trace("startWidth:" + " " + startWidth);
trace("startHeight:" + " " + startHeight);
}
function timerFunction (evt:TimerEvent):void
{
}
}
}
是的,这是标准的,因为您在构造函数中要求宽度和高度,此时属性/访问器设置未建立。等待属性被正式设置,这是在
事件之后最可靠的设置。已将\u添加到\u阶段
。这对我有用:
package
{
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class Movie extends MovieClip
{
public var startWidth:Number;
public var startHeight:Number;
public function Movie()
{
var myTimer:Timer = new Timer(2000);
myTimer.addEventListener(TimerEvent.TIMER, timerFunction);
myTimer.start();
startWidth = this.width;
startHeight = this.height;
trace("startWidth:" + " " + startWidth);
trace("startHeight:" + " " + startHeight);
addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
}
public function addedToStageHandler(event:Event):void
{
startWidth = this.width;
startHeight = this.height;
trace("new startWidth:" + " " + startWidth);
trace("new startHeight:" + " " + startHeight);
}
public function timerFunction(evt:TimerEvent):void
{
}
}
}
如果有帮助,请告诉我,
兰斯问题是你没有使用Silverlight。你的课程扩展了什么?也许你可以发布它的简化版本,没有它就很难判断问题出在哪里。我已经将我的原始问题简化为包含简化代码。您好,cmal,您上面的代码没有说明这个问题。你可以发布更多的代码,或者显示一些图片吗?没有更多的代码了。这就是一切。我在FlashCS4中创建了一个新的MovieClip,并将其链接为Hexagon,以便它使用这个类。编译SWF时,它会跟踪控制台的宽度和高度的“1”和“1”,即使六边形剪辑的高度超过100像素。根据我在这里发布的代码,任何人都应该能够轻松地复制与我完全相同的条件。