Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.03.2014, 01:06
Romeo4755 вне форума Посмотреть профиль Отправить личное сообщение для Romeo4755 Найти все сообщения от Romeo4755
  № 1  
Ответить с цитированием
Romeo4755

Регистрация: Dec 2011
Сообщений: 18
По умолчанию new Date() - вызов в мувиклипе

Я не могу разобраться - как вызвать myTime = new Date(); внутри мувиклипа? Получаю 1120: Access of undefined property cTime.
Спасибо за внимание.

Старый 11.03.2014, 01:15
alexandrratush вне форума Посмотреть профиль Отправить личное сообщение для alexandrratush Найти все сообщения от alexandrratush
  № 2  
Ответить с цитированием
alexandrratush
 
Аватар для alexandrratush

Регистрация: Jul 2013
Адрес: Днепр
Сообщений: 529
Отправить сообщение для alexandrratush с помощью ICQ Отправить сообщение для alexandrratush с помощью Skype™
Покажите весь код. Проблема в переменной cTime

Старый 11.03.2014, 18:50
Romeo4755 вне форума Посмотреть профиль Отправить личное сообщение для Romeo4755 Найти все сообщения от Romeo4755
  № 3  
Ответить с цитированием
Romeo4755

Регистрация: Dec 2011
Сообщений: 18
Кода, собственно, и нету.
Просто определение времени в начале клипа, чтобы выставить правильное время (Клип является часами со стрелками).
Клип был отдельной флешкой, причем собственноручно написанной. Код в первом кадре начинался так:
cTime = new Date();
hour = cTime.getHours();
minute = cTime.getMinutes();

Сделала часики мувиклипом. cTime не пашет.

Старый 12.03.2014, 06:36
RigidFlasher вне форума Посмотреть профиль Отправить личное сообщение для RigidFlasher Найти все сообщения от RigidFlasher
  № 4  
Ответить с цитированием
RigidFlasher

Регистрация: Dec 2011
Сообщений: 70
Цитата:
Сообщение от Romeo4755 Посмотреть сообщение
Получаю 1120: Access of undefined property cTime.
Пожалуй, нужно сначала объявить переменную cTime.
Например
Код AS3:
var cTime = new Date();
hour = cTime.getHours();
minute = cTime.getMinutes();
Так всё работает, только что проверил.

Старый 15.03.2014, 18:04
Romeo4755 вне форума Посмотреть профиль Отправить личное сообщение для Romeo4755 Найти все сообщения от Romeo4755
  № 5  
Ответить с цитированием
Romeo4755

Регистрация: Dec 2011
Сообщений: 18
Большое спасибо. Наверно, разница между AS2 и AS3.
Синтаксиса ни там, ни там не помню.
Новые строчки пишу нормально, по аналогии.
Старый исходник собирался еще в Макромедии 4 и в новом Aдобе работает без проблем, я и повелась, овца.

Скажите, пожалуйста, меня мучает такой вопрос: при обращении к клипу в AS3 каждый раз объявляются новые переменные. Что с ними происходит, когда клип запускается заново? В нормальном языке программирования вроде Дельфи для переменной не создается экземпляр - в худшем случае каждый раз при обращении к ней будет просто изменено значение. В лучшем - при заканчивании процедуры память, занятая под местные переменные просто освободится.

В случае использования в Экшен скрипте Мувиклипа со своими переменными существующий на экране экземпляр Мувиклипа не уничтожается, к нему просто обращаются периодически. И тут меня как-то настораживает вот это
Код AS1/AS2:
var cTime = new Date();
каждый раз при обращении (или любая другая переменная). Создаются новые экземпляры переменной с тем же именем, занимающие все больше памяти? Не стоит вообще объявлять переменные внутри клипов и надо иметь только глобальные?

Старый 15.03.2014, 18:16
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 6  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Наверно, разница между AS2 и AS3.
А что, в ас2 переменные без ключевого слова var объявлялись?
Цитата:
Что с ними происходит, когда клип запускается заново?
Цитата:
В нормальном языке программирования вроде Дельфи для переменной не создается экземпляр - в худшем случае каждый раз при обращении к ней будет просто изменено значение.
Никогда не считал делфи нормальным языком, но да ладно))
В ас3 новый экземпляр создается только при вызове директивы new, без вариантов.
Если такой директивы нет, то и новый экземпляр не создастся, так что мне не понятно, откуда такие выводы.
Если у вас при обращении к какому-то клипу создаются новые экземпляры, которые потом болтаются в памяти, то это не проблема языка, а проблема архитектуры приложения. АС3 - абсолютно нормальный язык, со своими плюсами и минусами

Цитата:
в худшем случае каждый раз при обращении к ней будет просто изменено значение.
Не должно при обращении к переменной меняться значение. Если это происходит, значит что-то не нормально. Значение должно меняться только при присвоении оного.

Старый 15.03.2014, 22:44
Romeo4755 вне форума Посмотреть профиль Отправить личное сообщение для Romeo4755 Найти все сообщения от Romeo4755
  № 7  
Ответить с цитированием
Romeo4755

Регистрация: Dec 2011
Сообщений: 18
Цитата:
А что, в ас2 переменные без ключевого слова var объявлялись?
Я просто не помню. Без слова var модуль на as2 работает и не вызывает нареканий Адоб флеша.
Добавлено: что-то помнится в ЭС2 вообще можно было не объявлять переменные, просто присваиваешь значение новому идентификатору на ходу.

Цитата:
Никогда не считал делфи нормальным языком, но да ладно))
Типа я знала, что шутки будут.
Еще раз по сути, стараясь не пикироваться.
Дельфи. Процедура. Входим в нее, объявляется переменная. Делаем с ней все, что хотим: присваиваем значения, пользуемся, она занимает в памяти только свои, скажем 8 байт. (Обращаемся к переменной - не в смысле именно считывания, а в смысле пользования ей, может быть, и присваиваем значение. x:= 5 - тоже обращение к переменной). Выходим из процедуры - она вообще ничего больше не занимает.

Экшен скрипт. Мувиклип. Каждый раз при запуске кода в мувиклипе создаем, я так понимаю (или я не так понимаю?) экземпляр переменной. Например: var cTime = new Date(); И, получается, памяти тратится все больше?


Последний раз редактировалось Romeo4755; 15.03.2014 в 23:29.
Старый 16.03.2014, 01:19
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 8  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Цитата:
Каждый раз при запуске кода в мувиклипе создаем, я так понимаю (или я не так понимаю?) экземпляр переменной.
Если писать в кадрах, а не в классах, как это принято в полноценном ООП языке AS3, да.
Цитата:
И, получается, памяти тратится все больше?
Пока не приходит Garbage Collector и ненужные переменные не сгребает лопатой. Сам.
__________________
тут я

Старый 16.03.2014, 02:28
Bletraut вне форума Посмотреть профиль Отправить личное сообщение для Bletraut Найти все сообщения от Bletraut
  № 9  
Ответить с цитированием
Bletraut
 
Аватар для Bletraut

Регистрация: Mar 2013
Адрес: Вне пространства.
Сообщений: 566
Отправить сообщение для Bletraut с помощью ICQ Отправить сообщение для Bletraut с помощью Skype™
Цитата:
Дельфи. Процедура. Входим в нее, объявляется переменная. Делаем с ней все, что хотим: присваиваем значения, пользуемся, она занимает в памяти только свои, скажем 8 байт. (Обращаемся к переменной - не в смысле именно считывания, а в смысле пользования ей, может быть, и присваиваем значение. x:= 5 - тоже обращение к переменной). Выходим из процедуры - она вообще ничего больше не занимает.
Сам работал несколько лет в делфи, и AS3 для меня теперь после него просто мана небесная. А что касается процедур, то в AS3 (как и в большинстве языков) есть аналог и называется он функция.

Код AS3:
private function sampleFunction(cTime:Date, des:String = null):void
{
    trace(cTime.getHours()); //часы
}

Старый 16.03.2014, 19:10
Romeo4755 вне форума Посмотреть профиль Отправить личное сообщение для Romeo4755 Найти все сообщения от Romeo4755
  № 10  
Ответить с цитированием
Romeo4755

Регистрация: Dec 2011
Сообщений: 18
Цитата:
Сам работал несколько лет в делфи, и AS3 для меня теперь после него просто мана небесная.
Собственно, у меня мнение такое же (точнее - не столько с Дельфи на AS3, сколько с AS2 на AS3 в силу сходства последнего с Дельфи). В некоторых областях.
А вот для обработки структуры диска и работы со строками даже во флеш-приложениях приходится запускать модули, скомпилированные с Дельфи. Но я всего Экшен скрипта не знаю, использую для оформительских целей, просто на Дельфи аппарат формальной обработки текста заведомо силен и есть запас нужных библиотек.

Цитата:
есть аналог и называется он функция
Спасибо. По этому пути уже и пошли. Но не было полной уверенности насчет распределения памяти. Недоступность переменной не означает прекращение ее существования - просто вслух нигде не сказано, что с памятью происходит. А Экшен скрипт как-то насчет памяти не очень заботлив.

Меня настораживали примеры из учебника типа
Код AS3:
var cloudfadeout:Tween = new Tween(cloud1, "alpha", None.easeOut, cloud1.alpha, 0,3,true);
Это облачко в случайном порядке ездит по карте Европы (чисто для разнообразия картинки) и появляется-исчезает в разных местах. Если твины для облака не оформлены в функциях, облачко когда-нибудь доездится, завесит систему.
Цитата:
Пока не приходит Garbage Collector и ненужные переменные не сгребает лопатой. Сам.
Пойду почитаю.

Создать новую тему Ответ Часовой пояс GMT +4, время: 03:13.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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