private bool make_outpackage_scope(Class cls,IBlockCallBack cb)
        {
            ASBinCode.CodeBlock codeblock = player.swc.blocks[cls.outscopeblockid];

            HeapSlot[]    globaldata = player.genHeapFromCodeBlock(codeblock);
            Global_Object global     = Global_Object.formCodeBlock(codeblock,globaldata,player.swc.classes[0]);

            ASBinCode.rtData.rtObject globalObj = new ASBinCode.rtData.rtObject(global,null);

            ASBinCode.RunTimeScope rtscope = player.callBlock(
                codeblock,globaldata,null,
                null, //player.static_instance[cls.staticClass.classid].objScope,

                step.token,
                cb,
                globalObj,
                RunTimeScopeType.outpackagemember
                );

            if (rtscope == null)
            {
                invokerFrame.endStep(step);
                return(false);
            }

            globalObj.objScope = rtscope;
            player.outpackage_runtimescope.Add(cls.classid,rtscope);
            {
                var slot = new DynamicPropertySlot(globalObj,true,player.swc.FunctionClass.getRtType());
                slot.directSet(player.static_instance[cls.staticClass.classid]);
                global.createproperty(cls.name,slot);
            }
            for (int i = 0; i < player.swc.classes.Count; i++)
            {
                if (player.swc.classes[i].mainClass == cls)
                {
                    if (init_static_class(player.swc.classes[i]))
                    {
                        var slot = new DynamicPropertySlot(globalObj,true,player.swc.FunctionClass.getRtType());
                        slot.directSet(player.static_instance[player.swc.classes[i].staticClass.classid]);
                        global.createproperty(player.swc.classes[i].name,slot);
                    }
                    else
                    {
                        //***出错了
                        invokerFrame.endStep(step);
                        return(false);
                    }
                }
            }

            return(true);
        }