Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   removeMovieClip (http://www.flasher.ru/forum/showthread.php?t=119101)

vorbiz 11.12.2008 23:32

removeMovieClip
 
Доброе время суток. Пишу класс:

Код AS1/AS2:

class dec2Bin
{
        private var gl_x = 50
        private var gl_y = 60
        private var iteration = 0
        private var canvas = null
        private var number = 0
 
        function dec2Bin(num_x, num_y)
        {
                _root.canvas.removeMovieClip()
                number = Math.round(Math.random()*10000)/10000
                canvas = _root.createEmptyMovieClip('canvas', _root.getNextHighestDepth());
                canvas._y = 15
                canvas._x = 0
 
                initDisplay(gl_x, gl_y)
        }
 
        private function initDisplay(num_x, num_y)
        {
                drawNumber(num_x, num_y, number + " = 0.", "init_number")
        }
 
        private function drawNumber(num_x, num_y, num, name)
        {
                var mc = canvas.createEmptyMovieClip(name, canvas.getNextHighestDepth());
                mc._x = num_x
                mc._y = num_y
                num_x = 0
                num_y = 0
                for (var i = 0; i < num.length; i++) {
                        if (num.substr(i, 1) == " ") {
                                num_x += 25
                        } else {
                                var mv = mc.attachMovie("movbtn0", "num_" + i, mc.getNextHighestDepth(), {_x:num_x, _y:num_y})
                                mv.label.text = num.substr(i, 1)
                                num_x += 25
                        }
                }
        }
 
}

В конструкторе _root.canvas.removeMovieClip() не хочет удалять канвас.
canvas.init_number удаляется только один раз. Все depth положительные.
Профи, будьте добры, подскажите, что я не так делаю? Заранее благодарен.

Kuruki 12.12.2008 10:19

removeMovieClip работает для клипов, созданных на сцене каким-либо программным методом, в смысле вы ручками клип клали на сцену? :)

vorbiz 12.12.2008 12:15

Я весь код привёл. Всё делается исключительно программно.

Kuruki 12.12.2008 12:44

У меня ваш код работает, строчки не накладываются друг на друга. Или я неправильно вас понял?

vorbiz 12.12.2008 12:48

При каждом создании объекта _root.d2b = new dec2Bin старый объект должен удаляться со всеми мувиклипами. Вот я и пытаюсь удалить основной мувиклип canvas, в котором остальные создаются, при каждом создании экземпляра класса.

Kuruki 12.12.2008 12:54

Ну так он удаляется.
Код AS1/AS2:

var bb = new dec2Bin(100, 100);
but.onRelease = function(){
        var ss = new dec2Bin(100, 100);
}

нажимаю на кнопку - каждый раз новая строчка. Если убрать
Код AS1/AS2:

_root.canvas.removeMovieClip()

то строчки друг на друга накладываются.

vorbiz 12.12.2008 12:57

Странно всё это. Почему у меня не удаляется тогда? as2 под 8 флеш компилю. студия - cs4.
И кстати, проверьте в 3 раз. Просто я пытался удалять init_number и он после первого раза удалятся, а после второго уже нет.
И вот ещё. Проверьте дебаггером. Оно может накладваться, просто незаметно это. Объект не уничтожается.

Wolsh 12.12.2008 13:58

а trace(_root.canvas) после ремува что говорит?

vorbiz 12.12.2008 20:05

_level0.canvas - до
_level0.canvas - и после

Wolsh 12.12.2008 20:16

а теперь также до и после romove трейс, только trace(_root.canvas.getDepth())
Есть подозрение, что у Вас там несколько канвасов получается и первый не удалился.


Часовой пояс GMT +4, время: 03:45.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.