我想命名的影片剪辑,我动态加载的实例。命名影片剪辑实例的动态加载
我试图这样做:
排版=新小样(); //并且还试图这样做 - >无功补偿:MovieClip的=新小样();
comp.name = “COMP”; //补偿的名称是我想要的实例是
但在输出窗口:
ReferenceError: Error #1056: Cannot create property comp on ToggleTest.
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
at ToggleTest()
这是我在我的ActionScript文件中的代码: 包 {
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.events.Event;
public class ToggleTest extends MovieClip
{
var comp:MovieClip;
public function ToggleTest()
{
comp = new Comp();
//var comp:MovieClip = new Comp();
comp.name = "comp";
comp.addEventListener(MouseEvent.MOUSE_OVER, rolloverToggle);
comp.addEventListener(MouseEvent.MOUSE_OUT, rolloutToggle);
comp.addEventListener(MouseEvent.CLICK, toggleClick);
comp.bstate = 0;
comp.buttonMode = true;
// Add Movie Clip "buttons" to stage
stage.addChild(comp);
comp.x = 120;
comp.y = 130;
// calls function frameloop
stage.addEventListener(Event.ENTER_FRAME, frameloop);
}
// function rolloverToggle
function rolloverToggle(e:MouseEvent) {
if (e.currentTarget.currentFrame == 1)
e.currentTarget.gotoAndStop(2);
if (e.currentTarget.currentFrame == 3)
e.currentTarget.gotoAndStop(4);
}
// function rolloutToggle
function rolloutToggle(e:MouseEvent) {
if (e.currentTarget.currentFrame == 2)
e.currentTarget.gotoAndStop(1);
if (e.currentTarget.currentFrame == 4)
e.currentTarget.gotoAndStop(3);
}
// function toggleClick
function toggleClick(e:MouseEvent) {
var houseArray:Object = {lightA: 1,
lightB: 1,
lightC: 1,
lightD: 1,
lightE: 1,
comp: 2,
tv: 3,
stove: 4,
laundry: 5};
var powerData:int = houseArray[e.currentTarget.name.toLowerCase()];
trace("movieClip Instance Name = " + e.currentTarget);
trace(powerData);
trace(houseArray[0]);
// how to find out which object selected
if (e.currentTarget.currentFrame == 2)
{
e.currentTarget.gotoAndStop(3);
e.currentTarget.bstate = 1;
}
if (e.currentTarget.currentFrame == 4)
{
e.currentTarget.gotoAndStop(1);
e.currentTarget.bstate = 0;
}
}
function frameloop(e:Event)
{
var outtext:String="";
outtext += comp.bstate +", ";
outfield.text = outtext;
}
}
}
“DisplayObjects(comp.name)的name属性是只读的,您不能设置它。” 这是不正确的,请检查文档,名称属性是可读写的! “你需要再次使用public或private关键字” false,如果你没有定义一个访问修饰符,它默认在内部 – PatrickS 2010-08-18 17:45:24
中链接的comp MovieClip - 我导出了Comp类。 – jc70 2010-08-18 17:57:07
@PatrickS尝试自己设置名称属性,它不会让你。另外你是对的,你不必使用公开的私人关键字,但它是一个最好的做法,在我的脑海中应该始终使用。 – Obto 2010-08-18 18:03:53