A script is a collection of code-related traits such as methods and classes.
Ejemplo n.º 1
0
        /// <summary>
        /// Generates a main timeline script for a new SWF
        /// </summary>
        /// <param name="qClassName">Qualified class name for the MainTimeline class,
        /// e.g. mygeneratedswf_fla.MainTimeline</param>
        /// <returns>A DoABC tag that can be inserted into a new SWF, which may be the one
        /// from the timeline (And so may already be in the SWF).</returns>
        public static DoABC GenerateDefaultScript(string qClassName, Timeline timeline)
        {
            DoABC abc = timeline.Root.FirstScript;
            if (abc == null)
            {
                abc = new DoABC(true, string.Empty, null, null);
                abc.code = new AbcCode();
            }

            AS3ClassDef classDef = GenerateTimelineClass(abc.code, qClassName, timeline.Root.Context);
            timeline.Class = classDef;

            Script s = new Script() { Method = GenerateTimelineScript(abc.code, classDef) };

            abc.code.AddScript(s);

            s.AddTrait(new ClassTrait() { As3class = classDef, Kind = TraitKind.Class, Name = timeline.Class.Name });

            return abc;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Read in the definitions for the code block.
        /// </summary>
        private void ReadScriptDefs()
        {
            uint scriptCount = this.abcdtr.ReadU30();
            for (int i = 0; i < scriptCount; i++)
            {
                uint idx = this.abcdtr.ReadU30();
                Method m = this.code.GetMethod((int)idx);

                Script s = new Script() { Method = m };

                uint traitCount = this.abcdtr.ReadU30();
                while (traitCount --> 0)
                {
                    s.AddTrait(this.ReadTrait());
                }

                this.code.AddScript(s);
            }
        }