Форум 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)
-   -   Почему не удалаяется клип в слушателе? (http://www.flasher.ru/forum/showthread.php?t=109379)

aea_2004 13.03.2008 12:29

Почему не удалаяется клип в слушателе?
 
Доброе время суток! Как удалить клип:

Код:

import mx.controls.DataGrid;
var myDataGrid:mx.controls.DataGrid;

_level0.myDataGrid.addColumn("IDFilm");        //0

//Функция Показ фото
function showBitmapData(bdlinkageId,bdX,bdY){
import flash.display.BitmapData;
var linkageId:String = bdlinkageId;
var myBitmapData:BitmapData = BitmapData.loadBitmap(linkageId);
//trace(myBitmapData instanceof BitmapData); // true
if(myBitmapData.height>myBitmapData.width){
        var scale:Number=100*99/myBitmapData.height;
        }else{
        var scale:Number=100*99/myBitmapData.width;
}
var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
mc.attachBitmap(myBitmapData, this.getNextHighestDepth());
mc._xscale=scale;
mc._yscale=scale;
mc._x=bdX;
mc._y=bdY;
}

showBitmapData("0002.jpg",34,139);

// Create listener object.
var dgListener:Object = new Object ();
dgListener.cellPress = function (evt_obj:Object) {
        var obj = evt_obj.target;
        mc.removeMovieClip();
        showBitmapData("0007.jpg",34,139);
};
// Add listener.
_level0.myDataGrid.addEventListener ("cellPress", dgListener);

bremove.onRelease= function () {
//trace ("onRelease called");
};

stop();

Спасибо

divinus 13.03.2008 12:36

функция trace() бывает иногда очень полезной ;)
Код:

dgListener.cellPress = function (evt_obj:Object) {
        var obj = evt_obj.target;
        //mc.removeMovieClip();
        trace(mc);
        showBitmapData("0007.jpg",34,139);
};

что мы увидим в таком случае?
читайте про область видимости переменных, а в данном конкретном случае, узнайте, доступен ли "mc" напрямую из обработчика события... ;)

aea_2004 13.03.2008 13:24

trace: _level0.mc. Написал:
Код:

_level0.mc.removeMovieClip();
Все равно не удаляет:( Что значит узнать: "доступен ли "mc" напрямую из обработчика события..."? Как узнать?

qazwsx 13.03.2008 13:36

Ну вообщето кагда он в коде написал mc.removeMovieClip(); будет выполнено _level0.mc.removeMovieClip(); Вот у него он и в трейсе виден).
Незнаю я попробовал у меня удаляется все...

divinus 13.03.2008 13:44

Код:

import mx.controls.DataGrid;
import flash.display.BitmapData;

var myDataGrid:mx.controls.DataGrid;
_level0.myDataGrid.addColumn("IDFilm");
function showBitmapData(bdlinkageId, bdX, bdY) {       
        var linkageId:String = bdlinkageId;
        var myBitmapData:BitmapData = BitmapData.loadBitmap(linkageId);
        if (myBitmapData.height>myBitmapData.width) {
                var scale:Number = 100*99/myBitmapData.height;
        } else {
                var scale:Number = 100*99/myBitmapData.width;
        }
        var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
        mc.attachBitmap(myBitmapData,this.getNextHighestDepth());
        mc._xscale = scale;
        mc._yscale = scale;
        mc._x = bdX;
        mc._y = bdY;
}
showBitmapData("0002.jpg",34,139);
var dgListener:Object = new Object();
dgListener.cellPress = function(evt_obj:Object) {       
        _level0.mc.removeMovieClip();       
        showBitmapData("0007.jpg",34,139);
};
_level0.myDataGrid.addEventListener("cellPress",dgListener);
stop();


aea_2004 13.03.2008 17:19

Не так не удаляет... У меня просто закрывает новым поверх:( Может как-то по другому надо?

divinus 13.03.2008 17:23

а если вот так?
Код:

import mx.controls.DataGrid;
import flash.display.BitmapData;

var myDataGrid:mx.controls.DataGrid;
_level0.myDataGrid.addColumn("IDFilm");
function showBitmapData(bdlinkageId, bdX, bdY) {       
        var linkageId:String = bdlinkageId;
        var myBitmapData:BitmapData = BitmapData.loadBitmap(linkageId);
        if (myBitmapData.height>myBitmapData.width) {
                var scale:Number = 100*99/myBitmapData.height;
        } else {
                var scale:Number = 100*99/myBitmapData.width;
        }
        var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
        mc.attachBitmap(myBitmapData,this.getNextHighestDepth());
        mc._xscale = scale;
        mc._yscale = scale;
        mc._x = bdX;
        mc._y = bdY;
}
showBitmapData("0002.jpg",34,139);
var dgListener:Object = new Object();
dgListener.cellPress = function(evt_obj:Object) {       
        _level0.mc.removeMovieClip();       
        //showBitmapData("0007.jpg",34,139);
};
_level0.myDataGrid.addEventListener("cellPress",dgListener);
stop();

;)

aea_2004 13.03.2008 17:53

Не знаю правильно или нет, но получилось так:

Код:

import mx.controls.DataGrid;
import flash.display.BitmapData;

var myDataGrid:mx.controls.DataGrid;
_level0.myDataGrid.addColumn("IDFilm");

function showBitmapData(bdlinkageId, bdX, bdY) {       
        var linkageId:String = bdlinkageId;
        var myBitmapData:BitmapData = BitmapData.loadBitmap(linkageId);
        if (myBitmapData.height>myBitmapData.width) {
                var scale:Number = 100*99/myBitmapData.height;
        } else {
                var scale:Number = 100*99/myBitmapData.width;
        }
        var mc:MovieClip = this.createEmptyMovieClip("mc", _level0);
        mc.attachBitmap(myBitmapData,this.getNextHighestDepth());
        mc._xscale = scale;
        mc._yscale = scale;
        mc._x = bdX;
        mc._y = bdY;
}
showBitmapData("0002.jpg",34,139);

var dgListener:Object = new Object();
dgListener.cellPress = function(evt_obj:Object) {       
       
        _level0.mc.removeMovieClip();       
        showBitmapData("0007.jpg",34,139);
};
_level0.myDataGrid.addEventListener("cellPress",dgListener);

Всем спасибо!

Скрипун 13.03.2008 18:09

aea_2004, быстренько оформи код тэгами /// а то не надо злить __etc :)

qazwsx 13.03.2008 18:17

Ты его не удаляеш. Его удаляет система т.к на этой глубине уже есть клип


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

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