2017-04-16 10 views
0

私はAdobe Flash CS3を使い始めています(私は古かったと思いますが、私には負担があります)。スクリプトを使用してflvファイルにシェイプを生成することはできますか?

flvキャンバス に直接シェイプを生成することができるかどうかは、単にスクリプトを実行するだけで、何もドラッグアンドドロップすることなく知ることができます。

私は次のようなドキュメントクラスを追加することによって、それを生成することができることを知っている:

package 
{ 
    import flash.display.*; 
    import flash.geom.*; 

    public class Script extends MovieClip 
    { 
     public function Script() 
     { 
      var r : Shape = new Shape(); 
      r.graphics.beginFill(0x00ff00); 
      r.graphics.drawRect(0, 0, 50, 50); 
      r.graphics.endFill(); 
      this.addChild(r); 
     } 
    } 
} 

しかし、実行一度スクリプトのいくつかの種類ですぐのFLVファイルに直接これを実行することが可能です(例えば、現在のシーンにx = 30、y = 30で正確に800x300の赤い矩形を挿入します)?コントロール>テストムービーを実行せずに現在作業しているドキュメントに表示されるようにします。

もしそうなら、どうしたらいいですか?

+0

FLVはビデオ形式ですが、SWFまたはFLAファイルを意味しますか? Adobe Flashでタイムラインやシーンを変更する場合は、JSFLを使用する必要があります。 http://help.adobe.com/en_US/flash/cs/extend/WS5b3ccc516d4fbf351e63e3d118a9024f3f-7fe8CS5.html – Nambew

+0

flaファイル。私は、プロジェクトを小規模なスタイルに配置する作業を自動化したいと思います。 – Dmitry

+0

この回答を見るhttp://stackoverflow.com/questions/2261869/fill-figure-with-jsfl – Nambew

答えて

3

ここには長方形の例があります。このコードをjsflファイルに保存し、エディタでCommandsメニューとrunコマンドを使用します。

// Create Rectangle With Fill - Andrew Doll 

var dom = fl.getDocumentDOM(); 
if (dom == null) 
{ 
    alert('Please open a file.'); 
} 
else 
{ 
    // Declare variables. 
    var tl = dom.getTimeline(); 
    var curLayer = tl.currentLayer; 
    var curFrame = tl.currentFrame; 
    var lockStatus = tl.layers[curLayer].locked; 
    var myElements = tl.layers[curLayer].frames[0].elements; 

    if (lockStatus) 
    { 
     alert('Unlock the layer.'); 
    } 
    else 
    { 

     dom.setFillColor('#0000ff'); 
     dom.addNewPrimitiveRectangle({left:0,top:0,right:100,bottom:100}, 0); 
     dom.selectNone(); 
    } 
} 
+0

プロパティを新しいマップに抽出することなくShapeオブジェクトを追加する方法はありますか? – Dmitry

+0

addNewRectangleとaddNewPrimitiveRectangleメソッドのシグネチャでboundsオブジェクトを使用します。 – Nambew

+0

jsflを使って表示オブジェクト/図形を追加する方法はありません。塗りつぶしと境界線を使用して作成することはありませんか? – Dmitry

2

Nambewは、すでにあなたがJSFL利用することによってこれを行うことができ、答えたように。彼のコードでオブジェクトの選択が見付からない唯一の問題は、setFillColorが描画されるオブジェクトに適用されないことです。

var leftPadding = 10; 
var topPadding = 10; 
var w = 30; 
var h = 30; 
var count = 10; 
var dom = fl.getDocumentDOM(); 
for (var i=0; i<count; i++) { 
    dom.addNewRectangle({left:leftPadding, top:topPadding, right:w+leftPadding, bottom:h+topPadding}, 0); 
    dom.mouseClick({x:leftPadding, y:topPadding}, false, false); 
    dom.setFillColor(Math.floor(16777215*Math.random())); 
    leftPadding+=w*1.1; 
    topPadding+=h*1.1; 
} 
関連する問題