你能告诉一下这个工作的动作脚本代码是什么样的吗?
答案 0 :(得分:0)
您使用StartDrag()和StopDrag()
答案 1 :(得分:0)
你的意思是Shape类对象或Graphics类对象? Shape类派生自DisplayObject,因此没有对此的交互支持,并且无法实例化Graphics类对象。为了制作可拖动的东西,需要将图形放在一些Sprite对象中。
答案 2 :(得分:0)
这是一种方式:
创建名为“Circle”的MovieClip。右键单击库中的符号,选择“属性”>选中“链接”框,然后选择“导出为Actionscript”。将类命名为“Circle”。您可以使用flash.display.MovieClip作为基类。
然后,在与.fla文件相同的文件夹中,创建一个名为“Circle.as”的文本文件(记住使用大写C,就像命名MovieClip一样)并输入以下内容:
package {
import flash.display.MovieClip;
import flash.events.MouseEvent;
public class Circle extends MovieClip {
public function Circle () {
this.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
this.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
this.buttonMode = true;
this.mouseChildren = false;
}
private function mouseDownHandler(e:MouseEvent):void {
startDrag();
}
private function mouseUpHandler(e:MouseEvent):void {
stopDrag();
}
}
}
答案 3 :(得分:0)
我知道这是一个老问题,但有一个重要的方面没有得到解决......
您是在引用声明为“图形”的库符号(而不是MovieClip或Button)吗?
如果您指的是“图形”库符号的概念,那么您不能。图形可以被认为是一个美化的“群体”,主要区别在于图形存在于图书馆而图书馆则不存在。像一个组,一个Graphic允许你在一个“容器”中收集不同的项目并在.fla中操作它们,但它实际上并不作为已发布的swf中的编程构造存在...所以你不能添加脚本或命令到图形,因为就闪存播放器而言没有图形。
作为实验,您可以在库中创建一个movieclip符号,然后创建另一个库项目,该项目是包含movieclip的图形。将这两个放在空fla的第1帧上,使用以下代码:
for(var i:int = 0 ; ilen:int = this.numChildren ; i < ilen ; i++){
trace(this.getChildAt(i));
}
请注意,这两个孩子都是你的MovieClip ......图形无处可寻。这就是您无法向Graphic添加任何脚本的原因。
那么你能做些什么来解决这个问题呢?
如果您绝对需要该符号作为库中的Graphic,并且您绝对需要能够将其作为一个整体拖放(或对其执行任何其他操作),那么您需要将其放在MovieClip中容器,然后拖放MovieClip。