是否可以使用脚本在 flv 文件中生成形状?
Is it possible to generate a shape in an flv file using a script?
我开始使用 Adobe Flash CS3(我知道它很旧但请耐心等待)。
我想知道是否可以直接在flv中生成形状canvas
没有 dragging/dropping 任何东西,只需 运行 编写一个脚本。
我知道我可以通过添加如下文档 class 来生成它:
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);
}
}
}
但是是否可以使用某种 运行-once 脚本直接对 .flv 文件直接执行此操作(例如,在 x=30 处将一个恰好 800x300 的红色矩形插入到我当前的场景中, y=30)?;以便它出现在我当前正在处理的文档中,而无需 运行ning Control>Test Movie?
如果可以,我该如何完成?
这是一个矩形示例。将此代码保存到 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();
}
}
正如 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;
}
我开始使用 Adobe Flash CS3(我知道它很旧但请耐心等待)。
我想知道是否可以直接在flv中生成形状canvas 没有 dragging/dropping 任何东西,只需 运行 编写一个脚本。
我知道我可以通过添加如下文档 class 来生成它:
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);
}
}
}
但是是否可以使用某种 运行-once 脚本直接对 .flv 文件直接执行此操作(例如,在 x=30 处将一个恰好 800x300 的红色矩形插入到我当前的场景中, y=30)?;以便它出现在我当前正在处理的文档中,而无需 运行ning Control>Test Movie?
如果可以,我该如何完成?
这是一个矩形示例。将此代码保存到 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();
}
}
正如 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;
}