![]() |
onEnterFrame: delete vs null
Код:
this.onEnterFrame=null;Заранее спасибо. |
Ну насколько известно первая строчка инициализирует метод-событие текущей временной шкалы, но не присваивает ему конкретной инстанции.
Вторая строчка предназначена для полного удаления метода-события. Вообще то эти две строчки совсем разные. |
Т.е. в 1с варианте сама функция onEnterFrame не исчезает? Т.е функция продолжает работать, возвращая "ничего"? Тогда есть ли смысл в такой конструкции?
|
В такой конструкции вообщем-то смысла нет, а вот в прединициализации свойств есть. Вот например в классе для присваивания свойству не динамического класса, необходимо предварительно инициализировать свойство, т.е.
Код:
class MyClassТак вот если не выполнить прединициализацию свойства myProp компилятор выдаст ошибку. А вообще-то null означает "пустое" значение. Оно нужно если мы нехотим передавать никакое значение значение параметра в функцию. Или, допустим в какой-то момент мы незнаем значение переменной, но в данном конкретном месте ее прединициализация целесообразна из соображений контроля типов, ну и тд. Однозначно пользуйтесь delete |
Alex_beginner, спасибо за исчерпывающий ответ.
|
Alex_beginner, инициализации при объявлении вовсе необязательна, достаточно и var myProp:Number;
кстати, поправь свой пример, объявить свойство класса как this.myProp:Number = null; никак не выйдет ps: onEnterFrame не нуждается ни в инициализации, ни даже в объявлении поскольку речь все же о наследниках MovieClip, т.е. такой класс, например, не вызовет ошибки: Код:
class MyClass extends MovieClip |
Несколько раз обсуждалось это. Использовать нужно delete.
|
silin! Красивый реверанс)). Вы не забывайте Вы создали подкласс от MovieClip, в нем инициализирован этот метод(onEnterFrame). А здесь Вы его просто переопределяете. Пожалуйста, мою мысль некаверкайте и людей с толку несбивайте.
|
Код:
onEnterFrame=null |
Цитата:
-инициализация при объявлении не нужна, а в некоторых случаях и вредна (инициализация непримитивных типов в AS2 приводит к неприятному косяку) -поскольку вопрос был об onEnterFrame, то логично и говорить об наследниках MovieClip, у которых onEnterFrame уже есть (какой смысл в "прединициализации" в этом контексте не очень понятно) -onEnterFrame в MovieClip не инициализирован (undefined), а только объявлен, но этого достаточно ps. дискутировать не стану, нечего обсуждать |
Верно! Дискутировать неочем, я рассказывал в начале TanaTix о null, а не о onEnterFrame (см. выше). Об onEnterFrame я "заикнулся" в конце поста.
Цитата:
Но приводить такой пример, где скрыта идея об объявлении от вопрошающих, было дело скорее запутывающее их, нежели раскрывающее сакральный смысл объявления и инициализации свойств. Теперь люди будут думать, что такое возможно - без предварительного объявления создать в нединамическом классе свойство или метод (синтаксис АС2). |
ну наконец-то люди перестанут так думать..
а кто все же не образумится, будет жестоко обломан компилятором |
Об этом я говорил выше!!:):D Но мы то должны им еще до компилятора разъяснить, а то нашим разъяснениям грош цена:)
|
Цитата:
Цитата:
|
а кто все же не образумится, будет жестоко обломан компилятором, если канешно не нападет на него первым..
|
chingachgoog!
А обоснование в примерах. А потом зачем вообще компилятор надувать - он призван помочь Вам не далать грубых ошибок. Он вроде соседа который напомнил Вам, что Вы забыли ключи от квартиры (пример Колина Мука). |
ээ.., так это ж не я..
по всем вопросам обмана тупого компилятора к chingachgoog, плс |
silin!!:taunt::taunt::D:taunt:
Прошу прощенья! |
Цитата:
Цитата:
|
chingachgoog!
В этой ситуации, обход компилятора дело нужное, не спорю. Но таких ситуаций относительно немного. Тогда, как ситуаций, когда этот "сосед" находит из 10 000 куб.м кода мелкую ошибку (не логическую), поверьте, он сильно облегчает Вам жизнь, сокращая Ваш поиск данной конкретной ошибки до минимума. Цитата:
|
Код:
class stat{ |
Согласен. С помощью синтаксиса доступа [] можно создать сие свойство.
Но ведь с помощью [] можно получить доступ даже к приватным свойствам и методам класса (баг), т.е. "увенчаные" директивой private, другое дело нужно ли это, если есть официальный синтаксис. А то все перемешается сразу динамические классы, нединамические итд. |
AS2 не существует. Существует конвертер AS2 в AS1 и все, а посему ничего удивительного и странного в том, что нет прав доступа и прочих фич, нет.
|
__etc, а что, компилятор AS3 так не проведешь?
|
Цитата:
|
Ну значит это дело времени - пока AVM2 еще не распотрошили как AVM1 :)
|
Цитата:
|
| Часовой пояс GMT +4, время: 22:03. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.