gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash/server sprite_instance.cpp sprite_instance.h


From: Vitaly Alexeev
Subject: [Gnash-commit] gnash/server sprite_instance.cpp sprite_instance.h
Date: Wed, 20 Sep 2006 14:57:24 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Vitaly Alexeev <alexeev>        06/09/20 14:57:23

Modified files:
        server         : sprite_instance.cpp sprite_instance.h 

Log message:
        added the unfinished createEmptyMovieClip()  method

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.53&r2=1.54
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.h?cvsroot=gnash&r1=1.23&r2=1.24

Patches:
Index: sprite_instance.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.cpp,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -b -r1.53 -r1.54
--- sprite_instance.cpp 20 Sep 2006 12:08:12 -0000      1.53
+++ sprite_instance.cpp 20 Sep 2006 14:57:23 -0000      1.54
@@ -117,6 +117,28 @@
        sprite->set_play_state(movie_interface::STOP);
 }
 
+//createEmptyMovieClip(name:String, depth:Number) : MovieClip
+static void sprite_create_empty_movieclip(const fn_call& fn)
+{
+       assert(dynamic_cast<sprite_instance*>(fn.this_ptr));
+       sprite_instance* sprite = static_cast<sprite_instance*>(fn.this_ptr);
+       if (sprite == NULL)
+       {
+           sprite = dynamic_cast<sprite_instance*>(fn.env->get_target());
+       }
+
+       assert(sprite);
+
+       if (fn.nargs != 2)
+       {
+           log_error("createEmptyMovieClip needs 2 args\n");
+           return;
+       }
+
+       character* ch = sprite->add_empty_movieclip(fn.arg(0).to_string(), 
int(fn.arg(1).to_number()));
+       fn.result->set_as_object(ch);
+}
+
 static void sprite_get_depth(const fn_call& fn)
 {
        assert(dynamic_cast<sprite_instance*>(fn.this_ptr));
@@ -644,6 +666,7 @@
        as_builtins.set_member("duplicateMovieClip", 
&sprite_duplicate_movieclip);
        as_builtins.set_member("swapDepths", &sprite_swap_depths);
        as_builtins.set_member("getDepth", &sprite_get_depth);
+       as_builtins.set_member("createEmptyMovieClip", 
&sprite_create_empty_movieclip);
 
        // @TODO
        //as_builtins.set_member("startDrag", &sprite_start_drag);
@@ -1005,6 +1028,28 @@
        assert(m_action_list.size() == top_action);
 }
 
+// TODO
+character* sprite_instance::add_empty_movieclip(const char* name, int depth)
+{
+//     cxform color_transform;
+//     matrix matrix;
+
+//     movie_definition* mdef =        new movie_def_impl(DO_LOAD_BITMAPS, 
DO_LOAD_FONT_SHAPES);
+//     sprite_instance* sprite =       new sprite_instance(m_def.get_ptr(), 
m_root, this, 0);
+//     m_display_list.remove_display_object(depth);
+//     m_display_list.place_character(
+//             sprite,
+//             depth,
+//             color_transform,
+//             matrix,
+//             0.0f,
+//             0);
+
+//     return sprite;
+
+       return NULL;
+}
+
 void sprite_instance::clone_display_object(const tu_string& name,
        const tu_string& newname, uint16_t depth)
 {

Index: sprite_instance.h
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.h,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- sprite_instance.h   20 Sep 2006 11:44:19 -0000      1.23
+++ sprite_instance.h   20 Sep 2006 14:57:23 -0000      1.24
@@ -261,6 +261,7 @@
 
        void swap_characters(character* ch1, character* ch2);
        character* get_character_at_depth(int depth);
+       character* add_empty_movieclip(const char* name, int depth);
 
        /// Add an object to the DisplayList. 
        //




reply via email to

[Prev in Thread] Current Thread [Next in Thread]