Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.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
Actionscript 3 如何在单个AS3电影剪辑中使用文档类?_Actionscript 3_Class_Generator_Document - Fatal编程技术网

Actionscript 3 如何在单个AS3电影剪辑中使用文档类?

Actionscript 3 如何在单个AS3电影剪辑中使用文档类?,actionscript-3,class,generator,document,Actionscript 3,Class,Generator,Document,我有一个五彩纸屑发生器,我正在将它添加到我的flash文件中的单个电影剪辑中。剪辑是遮罩的,我想有一些图形和文字出现在五彩纸屑上面(也会出现在背景层上面) 我买了一个像样的脚本,并对其进行了修改,使其能够与一些原始的五彩纸屑艺术品一起使用,但我不知道如何在一个电影剪辑中使用这个类(或将其更改为使用)。粘贴下面的类。我已经为此强调了几个小时了,如果有任何帮助,我将不胜感激 package com.pixeljunkyard { import flash.display.Sprite;

我有一个五彩纸屑发生器,我正在将它添加到我的flash文件中的单个电影剪辑中。剪辑是遮罩的,我想有一些图形和文字出现在五彩纸屑上面(也会出现在背景层上面)

我买了一个像样的脚本,并对其进行了修改,使其能够与一些原始的五彩纸屑艺术品一起使用,但我不知道如何在一个电影剪辑中使用这个类(或将其更改为使用)。粘贴下面的类。我已经为此强调了几个小时了,如果有任何帮助,我将不胜感激

package com.pixeljunkyard 
{
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import caurina.transitions.*;
    import fl.motion.Color;
    import flash.display.StageAlign;
    import flash.display.StageScaleMode;

public class Main extends Sprite
{
    //Create Heart Instance
    private var hearts:Heart;

    //Amount of hearts
    private var totalHearts:Number = 30;

    //Falling Speed
    private var speed:Number = 1.5;

    //Constructor
    public function Main() 
    {
        //Align top left for screen aspect ratio
        stage.align = StageAlign.TOP_LEFT;
        stage.scaleMode = StageScaleMode.NO_SCALE;

        //Loop through the amount of heart to be created
        for (var i = 0; i < totalHearts; i++)
        {
            //Create new heart
            var heart = new Heart();

            //Set Random value
            var randScale:Number = randRange(50, 100);
            var randRotation:Number = randRange( -180, 180);
            var randRotationY:Number = randRange( -360, 360);

            //Random position and scale
            heart.x = randRange(0, stage.stageWidth);
            heart.y = randRange( -stage.stageHeight, stage.stageHeight);
            heart.scaleX = randScale/100;
            heart.scaleY = randScale/100;

            //Name each heart with the number of creation
            heart.name = "heart" + i;

            var Low : int = 1;
            var High : int = 8;
            var myRandomNumber:int = Math.floor(Math.random()*(1+High-Low))+Low;


            heart.gotoAndStop(myRandomNumber);

            //Add eventlisteners for interactions
            heart.addEventListener(MouseEvent.ROLL_OVER, hit_heart);
            heart.addEventListener(Event.ENTER_FRAME, change_shade);

            //Initial Animation
            Tweener.addTween(heart, {time:randRange(1,5)/speed, rotation:randRotation,rotationY:randRotationY,y:stage.stageHeight+(heart.height/2)+20, transition:"linear", onComplete:rebirth,onCompleteParams:[heart]} );

            //Add to Stage
            addChildAt(heart, i);

        }
    }

    //Change shade to give lighting effect
    private function change_shade(e:Event):void
    {
        //New color instance
        var c:Color = new Color();
        //Set properties
        c.brightness = e.target.rotation / 300;

        //Apply color to heart
        e.target.transform.colorTransform = c;

    }

    //Random Function
    private function randRange(min:Number, max:Number):Number 
    {
        var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min;
        return randomNum;
    }

    //Interactive animation
    private function hit_heart(e:Event):void
    {
        Tweener.addTween(e.target, { time:randRange(1,3), rotationY:e.target.rotationY+180 } );
    }

    //Reset heart to top of the screen once fallen
    private function rebirth($heart:Heart):void
    {
        $heart.x = randRange(0, stage.stageWidth);
        $heart.y = -$heart.height;

        Tweener.addTween($heart, {time:randRange(1,5)/speed, rotation:randRange(-180,180),y:stage.stageHeight+($heart.height/2)+20, transition:"linear", onComplete:rebirth,onCompleteParams:[$heart]} );
    }
  }
}
package com.pixelsjunkyard
{
导入flash.display.Sprite;
导入flash.events.Event;
导入flash.events.MouseEvent;
导入caurina.transitions.*;
导入fl.motion.Color;
导入flash.display.StageAlign;
导入flash.display.StageScaleMode;
公共类Main扩展了Sprite
{
//创建心脏实例
私人心脏:心脏;
//心数
私有var totalHearts:数字=30;
//下降速度
专用var速度:数字=1.5;
//建造师
公共功能Main()
{
//对齐屏幕纵横比的左上角
stage.align=StageAlign.TOP\u左;
stage.scaleMode=StageScaleMode.NO_SCALE;
//循环通过要创建的心脏数量
对于(var i=0;i
现在我明白你的问题了

首先,我建议不要在时间轴上写代码,除了像
stop()
gotoAndPlay(“循环”)
这样简单的东西

实现目标的最简单方法是执行以下操作:

  • 在Flash IDE中按Ctrl+F8组合键制作一个空白的
    MovieClip
  • 给它一个这样的链接:
  • 然后单击编辑按钮(用红色矩形标记)
  • 如果需要,请在Flash Professional中打开
  • 将文件保存在.FLA目录中,并将Main.as文件的内容复制到此文件中
  • 删除包名(“com.pixeljunkyard”)
  • public class Main extends Sprite
    更改为
    public class confetticcontainer extends MovieClip
    并导入
    flash.display.MovieClip
  • 现在您有了一个类ConfetticContainer,它执行与Main.as文件相同的操作。别忘了把这个Main.as类使用的任何东西从舞台复制到你的糖果容器
    MovieClip

    您现在可以这样创建和使用它:

    var confetti:ConfettiContainer = new ConfettiContainer();
    addChild(confetti);
    

    另外,如果在Flash中创建
    符号时看不到
    Export for Actionscript
    选项,请单击
    Advanced

    我认为您的问题需要更具体一些。我不明白你的问题是什么。这个脚本只有在我从flash电影属性中的document类blank调用它时才起作用。我还没有真正学会使用文档类,通常在电影的第一帧中编写我需要编写的内容。这个脚本有两个问题。首先,我需要能够调用它并启动它,而无需将整个脚本设置为swf的文档类,并且我需要能够将其限制为movieclip的内容,以便我可以屏蔽它,将资源放在它上面(文本/图形),并将资源放在它后面(背景层)。我还没有机会尝试它。我迫不及待地想用手制作彩色纸屑的动画,因为我找不到另一个可以让我拥有足够控制力的解决方案。虽然我真的很想尝试一下,我很快就会,但我需要