![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2009
Сообщений: 34
|
Значит, я не понял о чем речь. Извините
![]() |
|
|||||
|
.
|
Да Вы не расстраивайтесь =) У него вообще может не быть parent, да и сам объект может не быть наследником DisplayObject.
|
|
|||||
|
Регистрация: Aug 2009
Сообщений: 134
|
Цитата:
А если, например класс имеет др классы: родителем обнуляем экземпляр класса CBall, должен ли я при этом заранее обнулить ссылку члена класса timer (timer = null , или же при обнулении экземпляра класса CBall, член timer обнуляется и удаляется из памяти автоматически?Последний раз редактировалось Denis_ex; 03.11.2009 в 22:15. |
|
|||||
|
Регистрация: Aug 2009
Сообщений: 134
|
Достаточно отписАться от него. - не могли бы вы пояснить что значит "отписАться от него."
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
От его событий.
|
|
|||||
|
Регистрация: Feb 2008
Сообщений: 890
|
Сейчас читаю Мука, немного запутался и у меня вот такой вопрос:
нужно ли перед удалением объекта отписываться от внутренних событий? т.е. если есть внутренний объект stageDetector, в котором регистрируются приемники addedToStageListener и removedFromStageListener, нужно ли отписывать эти приемники перед удалением объекта? package {
import flash.display.*;
import flash.ui.*;
import flash.events.*;
import flash.geom.*;
public class CustomMousePointer extends Sprite {
private var stageDetector:StageDetector;
public function CustomMousePointer ( ) {
graphics.lineStyle(1);
graphics.beginFill(0x00FF00, 1);
graphics.lineTo(15, 5);
graphics.lineTo(5, 15);
graphics.lineTo(0, 0);
graphics.endFill( );
stageDetector = new StageDetector(this);
stageDetector.addEventListener(StageDetector.ADDED_TO_STAGE, addedToStageListener);
stageDetector.addEventListener(StageDetector.REMOVED_FROM_STAGE, removedFromStageListener);
}
private function addedToStageListener (e:Event):void {
visible = false;
Mouse.hide( );
stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveListener);
stage.addEventListener(Event.MOUSE_LEAVE, mouseLeaveListener);
}
private function removedFromStageListener (e:Event):void {
trace(x + ", " + y);
Mouse.show( );
stage.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveListener);
stage.removeEventListener(Event.MOUSE_LEAVE, mouseLeaveListener);
}
private function mouseLeaveListener(e:Event):void {
visible = false;
}
private function mouseMoveListener (e:MouseEvent):void {
var pointInParent:Point = parent.globalToLocal(new Point(e.stageX, e.stageY));
x = pointInParent.x;
y = pointInParent.y;
e.updateAfterEvent( );
if (!visible) {
visible = true;
}
}
public function dispose ( ):void {
Mouse.show( );
stage.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveListener);
stage.removeEventListener(Event.MOUSE_LEAVE, mouseLeaveListener);
stageDetector.removeEventListener(StageDetector.ADDED_TO_STAGE, addedToStageListener);
stageDetector.removeEventListener(StageDetector.REMOVED_FROM_STAGE, removedFromStageListener);
}
}
}
__________________
скриптограф |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 890
|
Цитата:
__________________
скриптограф |
![]() |
![]() |
Часовой пояс GMT +4, время: 05:54. |
|
|
« Предыдущая тема | Следующая тема » |
|
|