Просмотр полной версии : _alpha:Number
MrakobeS
30.10.2005, 02:53
Всем привет!
Пытаюсь учиться и возникают глупые вопросы. Уж простите :rolleyes:
Зачем так писать: _alpha:Number?
Или это новый синтаксис... но мне и так понятно что это число ;)
Последнее время постоянно сталкиваюсь с таким написанием "что-то:то-то" и медленно схожу с ума...
Мог бы кто растолковать суть такого написания?
Это жесткое объявление типов переменных, необходимо для того чтобы если ты вдруг случайно на строчке так 800-900 от начала кода напишешь _alpha="50", то у тебя компилятор выдаст несоотвествие типов, а иначе ошибку будет найти очень проблематично. Да и в нормальных языках всегда переменные объявлятся явно , с указанием типа.
mne lichno boljshe nravitsja bez :to-to... :/ no posle togo kak ja prochital specifikaciju AS3/ECMA 4 - tam pochozhe budet obizatjelnym objavlenija tipa peremennoj... :(
Когда я писал что-то там на дельфи, то там переменные в самом начале указывали. Так более читабельнее, чем в середине когда, не сбивает.
на самом деле это очень удобно и правильно, повышается читабельность кода - а то иной раз не понятно строковая это переменная или Number, теперь можно обходиться без префиксов - в АС 3.0 необходимо обязательно указывать тип, объявлять переменную до её использования, писать тип переменной, которая возвращает функция и т.п. Чем раньше переучивашься, тем лучше :-)
повышается читабельность кода
теперь можно обходиться без префиксов
Как раз префиксы повышают читабельность кода, а не объявления типа.
MrakobeS
30.10.2005, 15:05
Спасибо за ответы :)
Теперь мне ясно, что это обязательное новшество.
MrakobeS
30.10.2005, 15:24
Теперь обязательно писать так?:
_root.createEmptyMovieClip("mc",1);
_root.mc._x:Number = 100;
_root.mc._y:Number = 100;
_root.mc._alpha:Number = 50;
и т.д.
Или же всё не настолько параноидально? :confused:
u menja chegoto kogda ja pishu naprimer
speed:Number = 100
flash kidajet Syntax Error... Kak praviljno pisatj a?
Для as1 и as2 не обязательно. Кроме того, строгая типизация там работает только вовремя компиляции, для отлова ошибок. В самом swf была автоматическая конвертация типов так и осталась.
Добавление.
В других языках, строгая типизация обусловлена тем что, под каждый тип выделяется определенное количество памяти. Во флеше памать выделяется динамически, что дает (а также отсутствие в необходимости конвертации одного типа в другой) прирост в производительности.
А раз этого нет, то лично мне указывать типы таким образом не нравится. Запись типа: point:Array = new Array () режит глаз. Мне гораздо удобне писать arrayPoint = new Array (100), кроме того я всегда знаю что это массив, и нет нужды вспоминать что это там point. Но это лично мой подход. Так, что споров разводить по этому поводу не стоит.
a pochemu moja vara nerabotajet?? s prefixom var rabotajet... bez nego net... s _global tozhe neidjot :(
a cho... prosto v pervyj kadr speed:Number = 0; pishi i zapuskaj... :D
speed:Number = 0; - nerabotajet
var speed:Number = 0; - rabotajet
_global.speed:Number = 0; - nerabotajet
Для типизированных переменных, прописывать var обязательно. Глобальные переменные (_global.speed) бестиповые, так как являются свойствами объекта _global.
toga ja nevizhu smysl v etich glupostjach tipa :Number :/
Перечитай мой пост за 21:41 :)
ja to vsegda takovo mnenija byl... no kakto chotel poprobovatj kak eto funkcionirujet... no kogda eto toljko dlja local peremennych to eto sovershenno nenuzhnaja vesch :( zhalko chto v AS3 nado budet ispoljzovatj :(
Добавление.
Мне гораздо удобне писать arrayPoint = new Array (100), кроме того я всегда знаю что это массив, и нет нужды вспоминать что это там point. Но это лично мой подход.
Не уверен, но, кажется, жесткое объявление типов данных повышает производительность и позволяя компилятору генерировать более специализированный код - не тратить время на ненужное (в данном случае) приведение типов.
Не уверен, но, кажется, жесткое объявление типов данных повышает производительность и позволяя компилятору генерировать более специализированный код.
Перечитай весь топик внимательно еще раз.
nekakoje vremja eto neikanomit a toljko zabivajet kod nenuzhnym chlamom :D vot mojo mnenije... zhdu AS3 - nasejusj bez etich glupostej :)
В "нормальных" языках экономит - как здесь не знаю, к примеру, помнится еще в школе писал на VB 6.0 там есть переменные типа Variant, тоже не определённые. Время на их обработку компилятором занимает ощутимо больше чем обычных - жестко объявленных.
P.s. VB - нормальным языком не считаю :-)
liquid lone
10.11.2005, 08:57
u menja chegoto kogda ja pishu naprimer
speed:Number = 100
flash kidajet Syntax Error... Kak praviljno pisatj a?
var speed:Number = 100
В "нормальных" языках экономит - как здесь не знаю, к примеру, помнится еще в школе писал на VB 6.0 там есть переменные типа Variant, тоже не определённые. Время на их обработку компилятором занимает ощутимо больше чем обычных - жестко объявленных.
P.s. VB - нормальным языком не считаю :-)
Мы владаем тем что у нас есть (вернее, что нам дают). И на текущий момент строгая типизация выигрыша, кроме как удобства отладки при компиляции, не дает.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.