【发布时间】:2015-11-07 20:00:39
【问题描述】:
在我的应用程序中,我正在将影片剪辑从库中导入到舞台,如下所示:
package {
import flash.display.*;
import flash.text.*;
import flash.events.*;
import flash.ui.Keyboard;
import flash.ui.Mouse;
import flash.display.MovieClip;
public class MainTimeline extends MovieClip {
//Variabili
public var VFullscreen: int = 1;
//Import var
public var VTerminal: Terminal = new Terminal();
public var nTerminal:String;
public function MainTimeline(): void {
stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
//Import
//Terminal
VTerminal.x = 288;
VTerminal.y = 384;
stage.addChild(VTerminal);
//Event Listeners
//addEventListener(MouseEvent.CLICK, fl_BringToFront);
VTerminal.addEventListener(MouseEvent.MOUSE_DOWN, fl_WindowDrag);
VTerminal.addEventListener(MouseEvent.MOUSE_UP, fl_WindowDrop);
}
//public functions
//Gestione Fullscreen
public function fl_Fullscreen(event: MouseEvent): void {
switch (VFullscreen) {
case 0:
stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
VFullscreen = 1;
break;
case 1:
stage.displayState = StageDisplayState.NORMAL;
VFullscreen = 0;
break;
}
}
public function fl_FSCheck(event: Event): void {
if (stage.displayState == StageDisplayState.NORMAL) {
VFullscreen = 0;
}
if (stage.displayState == StageDisplayState.FULL_SCREEN_INTERACTIVE) {
VFullscreen = 1;
}
}
//Primo Piano Finestre
public function fl_BringToFront(event: MouseEvent): void {
this.addChild(event.currentTarget as DisplayObject);
}
public function fl_WindowDrag(event: MouseEvent): void {
event.currentTarget.startDrag();
nTerminal = event.currentTarget.name.toString();
trace(nTerminal);
}
public function fl_WindowDrop(event: MouseEvent): void {
event.currentTarget.stopDrag();
}
//Chiusura
public function fl_Close(event: MouseEvent): void {
stage.nativeWindow.close();
}
//Apertura/Chiusura Terminal
public function fl_Terminal(event: MouseEvent): void {
if (contains(VTerminal)) {
removeChild(VTerminal);
} else {
VTerminal.x = 288;
VTerminal.y = 320;
addChild(VTerminal);
}
}
}
}
但我有一个从未见过的奇怪错误。它有两次相同的 MC,在运行时,当我拖放它时,我可以看到 2 个 MC,一个名为 instance8,一个名为 instance45。我不知道如何解决这个问题。
提前致谢。
终端类
package {
import flash.display.MovieClip;
import flash.events.*;
import flash.ui.Keyboard;
import flash.text.TextField;
public class Terminal extends MovieClip {
public var version: String = "Verison 0.0.1 a";
public function Terminal(event: Event) {
//Varie
nome.text = "terminal";
vOut.text = version;
//Animazioni
loader0.gotoAndPlay(1);
loader1.gotoAndPlay(25);
}
}
}
【问题讨论】:
-
不清楚你在做什么。你把这段代码放在哪里了?拖放是如何实现的?
-
你能展示你的整个代码吗?并验证您是否还没有手动插入舞台的实例。
-
我用完整的代码编辑过,是的,舞台上没有实例
-
要拥有两个,必须在某处有一个
new关键字或放在时间轴上。也许显示您的终端课程。这段代码就是你的文档类吧? -
@LoreSchaeffer 抱歉,您能否澄清您的陈述“是的,舞台上没有实例”?例如,您在舞台上是否已经有一个从库中拖到那里的实例?
标签: actionscript-3 flash addchild