我试图在这里问这个问题,但无法得到满意的答案。(为什么编译器应该允许函数中参数的超类)再次尝试询问。为什么在类上进行强制转换时不会丢失成员函数?在下文中,我预计,在转换为 Sprite 之后,该类应该丢失有关当前帧的所有信息。但它保留了信息,好像铸造只是一种“炫耀”,而不是内部“实际完成”?
import flash.display.MovieClip;
import flash.display.Sprite;
var mc:MovieClip
mc.gotoAndStop(2);
trace(mc.currentFrame); // output 2 --> that's ok
var sprite:Sprite = Sprite(mc)
trace( MovieClip(sprite).currentFrame);//output 2, value not lost, which is questionable
输出:2 2
我知道,答案可以是,Adobe 就是这样做的。但这是什么逻辑?理想的逻辑应该是,在转换和重新转换之后,所有值都必须恢复为默认值。(在这种情况下为“0”)
五。