我开始使用Adobe Flash CS3(我知道它已经老了,但请耐心等待。)
我想知道是否可以直接在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红色矩形插入到当前场景中)?所以它出现在我正在处理的文档上而不运行Control> Test Movie?
如果是这样,我该如何做到这一点?
答案 0 :(得分:3)
这是一个带矩形的例子。将此代码保存到jsfl文件,并在编辑器中使用命令菜单并运行命令。
// 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();
}
}
答案 1 :(得分: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;
}