标签: actionscript

AS3:如果在超级类中更改属性,我该如何触发事件?

我在Sprite中有一个TextField,我总是希望TextField的alpha等于sprite的alpha.我如何订阅Sprite中所做的更改?我想我需要解决一些PropertychangeEvent,但我看不到sprite支持这个开箱即用?

class TextWidget extends Sprite{  
  private var textfield:TextField;    
  public function TextWidget(){  
    textfield = new TextField();  
    textfield.alpha = this.alpha;  //does'n help  
    addChild(textField);  
??  
  this.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, updateAlpha);  
??  
  }
  private function updateAlpha(event:PropertychangeEvent):void{  
    textfield.alpha = this.alpha;  
  }  
}  
Run Code Online (Sandbox Code Playgroud)

actionscript event-handling actionscript-3

0
推荐指数
1
解决办法
5467
查看次数

自定义(简单)AS3类代码不完全执行

这个问题可能很容易解决,但我不清楚.可能只是我做错了事.我已经研究了OOP和AS3几个小时,所以我熟悉概念但不熟悉流程.这是我整理的一个项目,以加强我一直在学习的东西.

这里的目标是从库中将预先创建的动画片段的实例加载到舞台,然后在FLA的时间帧ActionScript中执行定位功能,并在AS文件的ActionScript类中执行一个函数,以调整动画片段的大小并输出跟踪.

我有两个文件:smileface.fla smileface.as

在smileface.fla中,我有一个驻留在我的库中的MovieClip对象.它具有以下相关属性......

Name: faceInst
Class: smileface
Base Class: null

我有一个框架(关键帧),它包含以下ActionScript:

var faceInst:smileface = new smileface();
this.addChild(faceInst);
faceInst.x = stage.stageWidth/2;
faceInst.y = stage.stageHeight/2;

在我的smileface.as文件中,我有以下代码:

package {
    import flash.display.MovieClip;
    import flash.display.Stage;
    public class smileface extends MovieClip {
        public function smileFunction() {
            this.width = stage.stageWidth/5;
            this.height = stage.stageHeight/5;
            trace("Done!");
        }
    }
}

我希望(没有理由这样做)在加载movieclip对象之后,它将根据规范调整大小,然后输出跟踪.

然而,相反的是,面部显示在舞台上,居中,但没有调整大小,并且根本不输出轨迹.

flash actionscript actionscript-3

0
推荐指数
1
解决办法
504
查看次数

如何防止SWF反编译?

如何防止我的SWF反编译?

从反编译预防的角度来看, ActionScript 1/2和ActionScript 3之间有什么区别吗?

这是以下问题的相反问题:

你如何反编译swf文件? 你如何反编译swf文件

flash actionscript decompiling actionscript-3

0
推荐指数
1
解决办法
4560
查看次数

Flex:是否可以保证在无法访问时从编译的构建中排除代码?

假设你有

private static const INCLUDE_MY_DEBUG_CODE:Boolean = false;

public function runMyDebugCode():void
{
    if ( INCLUDE_MY_DEBUG_CODE )
    {
        callADebugFunction();
    }
}

private function callADebugFunction():void
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

鉴于没有其他对callADebugFunction的引用,是否可以保证callADebugFunction不是编译构建的一部分?

apache-flex actionscript flex3 actionscript-3

0
推荐指数
1
解决办法
156
查看次数

获取getPixels ByteArray中的主色或平均色

所以,我有这个代码:

import flash.display.BitmapData;
import flash.display.Bitmap;
import flash.geom.Rectangle;
import flash.utils.ByteArray;

var bmd:BitmapData = new BitmapData(10, 10, true);
var seed:int = int(Math.random() * int.MAX_VALUE);
bmd.noise(seed);

var bounds:Rectangle = new Rectangle(0, 0, bmd.width, bmd.height);
var pixels:ByteArray = bmd.getPixels(bounds);
Run Code Online (Sandbox Code Playgroud)

有没有办法在pixelsByteArray中有效且快速地获得主色和/或平均色.

noise用于此处的示例.我将在BitmapData上绘制其他内容.

我找到了一些从BitmapData中提取平均颜色味觉的方法,但这对我来说还不够,因为我想要从该图像的矩形平均值.

提前致谢!

flash actionscript actionscript-3

0
推荐指数
1
解决办法
2919
查看次数

0
推荐指数
1
解决办法
152
查看次数

动作脚本中的&&运算符是否懒惰?

var b:Boolean = condition1() && condition2();
Run Code Online (Sandbox Code Playgroud)

在此声明中,如果condition1()计算结果为false,将condition2()进行评估吗?

actionscript

0
推荐指数
1
解决办法
659
查看次数

从php-script获取变量到AS3脚本

<?php
    $someVar = count(scandir("bilder/") - 2);
?>
Run Code Online (Sandbox Code Playgroud)

我需要导入$someVar我的.fla文件,我只需要它的值:

var timer:Timer = new Timer(1000);
timer.addEventListener(TimerEvent.TIMER, nextSlide2);
timer.start();

var ld:Loader = new Loader();
var bildeArr = [];

var backend: String = 'backend.php';
var loader: URLLoader = new URLLoader;

loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.load( new URLRequest(backend));

trace(loader.data);



ld.x = 20;
ld.y = 20;
for(var i:int = 1; i<9; i++) {
    bildeArr.push("bilde" + String(i));
}

i = 0;
function nextSlide2(evt:TimerEvent):void {
    trace(i);
    ld.load(new URLRequest("bilder/" + bildeArr[i] + ".png"));
    addChild(ld);
    if(i > 6) { …
Run Code Online (Sandbox Code Playgroud)

flash actionscript actionscript-3

0
推荐指数
1
解决办法
8175
查看次数

如何在actionscript中的回调函数中使用类的方法?

在回调函数中调用类的方法时,不能使用thisobject.
要调用该方法,在JavaScript中,我声明that的变量,分配thisthat,并且使用that回调内部调用的方法this.

在动作脚本中,我是否必须像在javascript中那样做?

以下代码是that用于在回调内调用方法的示例.
动作中有更简单的方法吗?

class C {
    private var that:C;

    function C() {
        that = this
    }

    public function f1():void {
        var sp:Sprite = new Sprite;

        sp.addEventListener(MouseEvent.CLICK, function():void {
            this.f2(); // this doesn't work
            that.f2(); // that works
        });
    }

    public function f2():void {
        trace('hello');
    }
}
Run Code Online (Sandbox Code Playgroud)

flash actionscript callback event-listener actionscript-3

0
推荐指数
2
解决办法
910
查看次数

Flex上的多任务问题

我有一个方法可以同时从PHP调用两个服务.由于Flex的多任务处理能力,我认为每个服务都在不同的线程中调用.

我的问题是:两个服务都从数据库返回一个对象数组.但第二个服务将提供一个DataGrid,它具有每个记录的处理程序.这个处理程序将比较两个Arrays中的那个,当Flex在完成第一个之前完成第二个时,我遇到了问题,因为处理程序试图将数据与空对象进行比较(PHP服务尚未响应).

有任何想法吗?

编辑:

在我发布这个问题的那天,有些人给了我一个惊人的想法,但遗憾的是他似乎删除了他的帖子,我不知道为什么.我坚持他的想法,我找到了一个符合我的设计模式的解决方案.

他告诉我把一个标志告诉我数据是否已经加载.所以这就是我现在正在做的事情:我称之为先服务; 我叫第二次服务;

在第一个服务的结果,我检查第二个服务上的标志,如果它是真的,这意味着它已经加载,所以我可以将我的数据存储在DataGrid中,以便可以调用处理程序.如果该标志为false,则表示尚未加载第二个数据,因此我将其存储在一个没有绑定到dataGrid的_temp DataProvider上,而不是存储在官方dataProvider中的数据.在这种情况下,当加载第二个数据时,会将侦听器事件分派给第一个服务,告诉他捕获_temp dataProvider并将其复制到官方dataProvider.

特别是,我喜欢这个解决方案,并没有打破Table Data Gateway的设计模式.

谢谢大家的帮助.

php apache-flex multithreading actionscript

0
推荐指数
1
解决办法
117
查看次数