Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
运动Tween不';t在ActionScript 3和Flash CS5中的函数内部工作_Flash_Actionscript 3_Flash Cs4_Flash Cs5 - Fatal编程技术网

运动Tween不';t在ActionScript 3和Flash CS5中的函数内部工作

运动Tween不';t在ActionScript 3和Flash CS5中的函数内部工作,flash,actionscript-3,flash-cs4,flash-cs5,Flash,Actionscript 3,Flash Cs4,Flash Cs5,我有一个问题,把议案之间的功能。我的代码在CS4中运行得很好(但不幸的是,flash CS4一直挂在我的电脑上。CS5中的任何人在函数外部运行得很好,但当我将其放入函数中时,它的行为却很奇怪?我必须指出,我不是flash的专业人士,我对自己糟糕的英语感到抱歉 我将一个矩形形状转换为符号,并将其命名为s1 以下是没有函数的代码: import fl.transitions.Tween; import fl.transitions.easing.*; import fl.motion.Animato

我有一个问题,把议案之间的功能。我的代码在CS4中运行得很好(但不幸的是,flash CS4一直挂在我的电脑上。CS5中的任何人在函数外部运行得很好,但当我将其放入函数中时,它的行为却很奇怪?我必须指出,我不是flash的专业人士,我对自己糟糕的英语感到抱歉

我将一个矩形形状转换为符号,并将其命名为s1 以下是没有函数的代码:

import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.motion.AnimatorFactory;
import fl.motion.MotionBase;
import flash.filters.*;
import flash.geom.Point;
import fl.motion.Motion;
import flash.display.DisplayObject;

var __motion_UIL1:MotionBase;
if(__motion_UIL1 == null) 
{
    import fl.motion.Motion;
    __motion_UIL1 = new Motion();
    __motion_UIL1.duration = 15;
    //__motion_UIL1.overrideTargetTransform();

    __motion_UIL1.addPropertyArray("x", [-280,-260,-240,-220,-200,-180,-160,-140,-120,-100,-80,-60,-40,-20,0]);
    __motion_UIL1.addPropertyArray("y", [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);

    __motion_UIL1.addPropertyArray("scaleX", [1.000000]);
    __motion_UIL1.addPropertyArray("scaleY", [1.000000]);
    __motion_UIL1.addPropertyArray("skewX", [0]);
    __motion_UIL1.addPropertyArray("skewY", [0]);
    __motion_UIL1.addPropertyArray("rotationConcat", [0]);
    __motion_UIL1.addPropertyArray("blendMode", ["normal"]);
    __motion_UIL1.initFilters(["flash.filters.BlurFilter"], [0], -1, -1);

    __motion_UIL1.addFilterPropertyArray(0, "blurX", [200,185.714,171.429,157.143,142.857,128.571,114.286,100,85.7143,71.4286,57.1429,42.8572,28.5715,14.2857,0], -1, -1);
    __motion_UIL1.addFilterPropertyArray(0, "blurY", [0], -1, -1);  

    __motion_UIL1.addFilterPropertyArray(0, "quality", [BitmapFilterQuality.LOW], -1, -1);

    var __animFactory_UIL1:AnimatorFactory = new AnimatorFactory(__motion_UIL1);
    __animFactory_UIL1.transformationPoint = new Point(0.500000, 0.500000);

    __animFactory_UIL1.addTarget(s1, 1);
}
这里,当我把运动tween放在函数中时: (我将一个矩形形状转换为我命名为s1的符号)

现在这是CS4的工作,而不是CS5的工作。
请帮助我

\u运动UIL1和动画工厂UIL1都声明为局部变量(在函数内部),这基本上意味着它们在函数执行后被擦除和遗忘。请尝试移动

var __motion_UIL1:MotionBase;


超出函数体。

除了看起来像小火车失事的代码外,这似乎可以编译并作为时间轴脚本正常工作。你能更具体地说明问题吗?你有错误吗?没有。根本没有错误。但是第一个代码模糊并在15帧内移动屏幕上的s1符号,第二个代码在1帧内不移动的情况下进行模糊(没有模糊或移动的动画)。另外,我同意@grapefrakt:代码看起来确实像一个小火车失事;)谢谢。这很有帮助。我检验了你的建议,你是对的。但是在flash cs4中,我没有这个问题。如果我使用您的方式,那么我将无法在运行时对任何其他电影剪辑或显示对象动态使用此函数?你有什么建议吗?它在CS4中也不应该起作用;)id确实存在的事实可能与不同的垃圾收集机制有关,但充其量也只是巧合。您仍然可以动态使用该函数,但您必须围绕该函数构建一个类(并为要移动的每个显示对象使用“new”对其进行实例化),或者为每个运动使用一个MotionBase和一个AnimatorFactory,将两者作为参数与显示对象一起传递给该函数。非常感谢。你提到的第二种方式对我来说更容易。你帮了大忙。再次感谢
var __motion_UIL1:MotionBase;
var __animFactory_UIL1:AnimatorFactory;