zoukankan      html  css  js  c++  java
  • Starling之影片剪辑

    Starling包含一个非常轻量的影片类:MovieClip。你可以猜想这个类像一个不断更换纹理的图片。(因为它扩展自图片,它确实是这样的)。
    建议影片剪辑所有的帧都来自一个纹理图集,并且它们都具有相同的大小(如果没有的话,它们将被拉伸到与第一帧相同的尺寸)。
    这是一个简单的纹理图集,它包含了影片剪辑所有的帧。首先,看看帧坐标的XML。请意它的每帧的名字都用"flight_"做前缀。

    1 <TextureAtlas imagePath="atlas.png">
    2     <SubTexture name="flight_00" x="0" y="284" width="166" height="164"/>
    3     <SubTexture name="flight_01" x="332" y="284" width="166" height="160"/>
    4     <SubTexture name="flight_02" x="166" y="284" width="166" height="150"/>
    5     <SubTexture name="flight_03" x="0" y="586" width="192" height="142"/>
    6     <!-- ... -->
    7 </TextureAtlas>

    这是对应的纹理:

    现在让我们来创建影片剪辑:

     1 // 嵌入图集的XML
     2 [Embed(source="atlas.xml", mimeType="application/octet-stream")]
     3 public static const AtlasXml:Class;
     4 
     5 // 嵌入纹理图集
     6 [Embed(source="atlas.png")]
     7 public static const AtlasTexture:Class;
     8 
     9 // 创建图集
    10 var texture:Texture = Texture.fromBitmap(new AtlasTexture());
    11 var xml:XML = XML(new AtlasXml());
    12 var atlas:TextureAtlas = new TextureAtlas(texture, xml);
    13 
    14 // 创建影片剪辑
    15 var movie:MovieClip = new MovieClip(atlas.getTextures("flight_"), 10);
    16 movie.loop = false; // default: true
    17 addChild(movie);
    18 
    19 // 控制播放
    20 movie.play();
    21 movie.pause();
    22 movie.stop();
    23 
    24 // 重要的是:添加影片到juggler
    25 Starling.juggler.add(movie);

    你有没有注意我们如何通过它们的前缀"flight_"从图集中引用纹理?这允许你创建一个包含不同影片剪辑和其它纹理的混合图集。只要给所有帧相同的前缀。
    已经用这些纹理创建了影片以及一个10帧每秒的播放速率。像所有的动画一样,它已经传给了juggler--不要忘了这一点!
    你也可以对某些帧使用自定义持续时间,每当某帧显示时开始播放声音。

    1 // 添加另一帧,它只显示半秒
    2 movie.addFrame(anotherTexture, null, 0.5);
    3 
    4 // 在第0帧添加声音
    5 movie.setFrameSound(0, new EmbeddedSound());
    6 
    7 // 插入一个带有特殊声音和持续时间的帧
    8 movie.addFrameAt(2, anotherTexture, anotherSound, 0.5);

    值得一提的另一个特征是:每当影片剪辑显示它的最后一帧时它分发Event.COMPLETE事件(每循环一次)。

    原文链接:Starling之影片剪辑

    英文链接:http://wiki.starling-framework.org/manual/movie_clips

  • 相关阅读:
    WPF DelegateCommand 出现Specified cast is not valid
    WPF DelegateCommand 出现Specified cast is not valid
    WPF DelegateCommand 出现Specified cast is not valid
    win10 sdk 是否向下兼容
    win10 sdk 是否向下兼容
    win10 sdk 是否向下兼容
    PHP extract() 函数
    PHP end() 函数
    PHP each() 函数
    PHP current() 函数
  • 原文地址:https://www.cnblogs.com/atong/p/2942304.html
Copyright © 2011-2022 走看看