如何在Flash/AS3中获取/设置MovieClip的绝对位置?绝对地,我指的是它相对于舞台的起源的位置.
我目前有这个二传手:
class MyMovieClip extends MovieClip
{
function set xAbs(var x:Number):void
{
this.x = -(this.parent.localToGlobal(new Point()).x) + x;
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎有效,但我觉得它需要舞台左对齐.
但是,我没有工作的吸气剂.这不起作用:
public function get xAbs():Number
{
return -(this.parent.localToGlobal(new Point()).x) + this.x; // Doesn't work
}
Run Code Online (Sandbox Code Playgroud)
我的目标是一个有效的解决方案,并适用于所有Stage对齐,但它很棘手.我在舞台上使用它,这相对于浏览器的窗口大小.
编辑:这适用于左上角对齐的舞台; 不确定其他人:
public function get AbsX():Number
{
return this.localToGlobal(new Point(0, 0)).x;
}
public function get AbsY():Number
{
return this.localToGlobal(new Point(0, 0)).y;
}
public function set AbsX(x:Number):void
{
this.x = x - this.parent.localToGlobal(new Point(0, 0)).x;
}
public function set AbsY(y:Number):void
{
this.y = y …Run Code Online (Sandbox Code Playgroud) 我在Flex 3中使用AS3来创建新图像,似乎无法获得原始图像的确切大小.percentHeight和percentWidth到100可以完成这项工作,但是ObjectHandlers中的限制要求我以像素为单位设置图像比例.
有解决方案吗
嘿我正在尝试构建这个简单的调试器类,所以我可以在浏览器控制台中看到flash变量,如果我在flash ide中测试它,我会得到好的旧跟踪器.但由于某种原因ExternalInterface.available返回trueFlash ide!
package libs
{
import flash.external.ExternalInterface;
public class debug
{
public function tracer(variable:*):void
{
if(ExternalInterface.available)
{
if(variable is String)
{
variable = '"'+variable+'"';
}
ExternalInterface.call('console.log(' + variable + ')');
}
else
{
trace(variable);
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 我曾经写过一个Flash游戏(CS3)并且它曾经工作但是当尝试在CS5中编译相同的FLA文件时不起作用.
我有一个名为tScore的动态文本字段
tScore.text = Score;
Run Code Online (Sandbox Code Playgroud)
用于将用户得分的当前整数值应用于文本框.它不再那样做了.(看起来很空)
通过简单的调试:
tScore.text = Score.toString; // no value shown
tScore.text = String(Score); // no value shown
tScore.text = "A"; // sets the field to the value A
tScore.text = "123"; // no value shown
tScore.text = "C123"; // value "C" shown
tScore.text = "A12A"; // value "AA" shown
tScore.text = "000"; // value "000" shown
tScore.text = "01"; // value "0" shown
Run Code Online (Sandbox Code Playgroud)
我知道在闪存中发生奇怪的事情需要很长时间 - 但是 - 这对我来说没有意义.
有没有人遇到过不接受数字的文本字段?
public var:NoOfElements = 0;
public function addElement(){
// increases NoOfElements by one in every call
}
public function remvoveElement(){
// decreases NoOfElements by one in every call
}
Run Code Online (Sandbox Code Playgroud)
addElement和removeElement由两个单独的计时器事件调用.并且在每个方法中它修改全局变量NoOfElements.有没有一种方法来同步acionscript中的变量?
我已经开发了半年左右的ActionScript应用程序.据我所知,mxmlc编译器只是一个以更方便的方式调用javac - {options}的sh脚本.这让我知道我的源代码被编译成本机 java字节码.
综上所述,我可以得出结论,Flash Player应该要求安装JVM,要么是JVM本身.或者也许Java用于生成Adobe自定义二进制文件,就像任何其他编译器一样,但Java是跨平台的并且是行业标准,因此为了避免可移植性问题,Adobe(Macromedia)可以选择ActionScript/Flex.
你能解释一下吗?
这是我的以下代码.
var clips:Array=new Array(clip_0_mc,clip_1_mc,clip_2_mc,clip_3_mc,clip_4_mc);
trace(clips);
clips[0].alpha=.5;
clips[3].rotation=45;
clips[3].brightness=100;// This is not working.
clips[1].rotation=170;
Run Code Online (Sandbox Code Playgroud)
我试过alpha和旋转tat是完美的.但亮度不起作用.
我只使用ActionScript 3三天,所以我是一个重要的新手,但我一生中大部分时间都使用过其他几种语言.
我在顶层的第一帧有以下代码:
var level:Array = new Array();
var level[0] = new Object();
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Scene 1, Layer 'levels', Frame 1, Line 2
1086: Syntax error: expecting semicolon before leftbracket.
Run Code Online (Sandbox Code Playgroud)
我已经看过许多似乎正在做我正在做的事情的例子,我也尝试分别定义对象,然后将它添加到数组中,同样的错误.我也在寻找答案,但我发现的所有问题都与这种情况有点不同.预先感谢您提供任何帮助或链接.
我的FLA库中有几个动画片段,应用了类名.在我的AS包文件中,我有一个这些类名的数组.我想做的是在舞台上显示动画片段,如下所示:
总共n00b问题,我敢肯定.我理解基础知识,但调用类名让我感到困惑.任何帮助,将不胜感激!
如何在ActionScript 3.0中将字符串转换为char数组?
我尝试了下面的代码但是我收到一个错误:
var temp:ByteArray = new ByteArray();
temp = input.toCharArray();
Run Code Online (Sandbox Code Playgroud)
从错误中,我理解toCharArray()函数不能应用于字符串(即在我的情况下 - 输入).请帮帮我.我是初学者.
actionscript ×10
flash ×4
arrays ×1
class ×1
class-names ×1
dynamic-text ×1
flash-cs5 ×1
java ×1
javascript ×1