Просмотр полной версии : ООП в MX
Для начала - здрасте!
Такой вот вопросец возник: изменилось ли что-то в ООП в MX по сравнению с 5-кой? Есть такое ощущение, что кое-что изменилось... или я что-то не понимаю...
была такая замутка:
function SomeObject ( name )
{
this[name1] = name;
trace ( this[name1] );
}
и при обращении к свойству name1: SomeObject ( "ddd" )
почему-то выводится undefined
разве свойства объекта обязательно должны быть параметрами функции-конструктора??? :confused:
спасибо... :)
И ещё вопрос...
Почему после создания объекта при присваивании его св-вам значений в объекте они не меняются?..
т.е., например, в функции-конструкторе объекта я создаю текстовое поле и одним из св-в объекта является значение, которое нужно присвоить текстовому полю...
при создании объекта ( myObject = new Object ) я сначала не передаю ему значение текстового поля...
а после пишу
myObject.myTxtFieldVal = "bla" ( где myTxtFieldVal - свойство значение которого присваивается текстовому полю )
и ничего не происходит - текст не появляется в текстовом поле.. :(
почему???
спасибо...
Nox Noctis
25.08.2002, 21:32
правильно:
function SomeObject ( name ) {
this["name1"] = name;
trace ( this["name1"] );
}
чувствуешь разницу ? :D
2Nox Noctis
спасибо ... :)
я уже понял - в моём случае просто нужно было использовать точечную запись...
А вот второй вопрос всё ещё актуален...
Nox Noctis
26.08.2002, 00:11
код в студию :)
и как называется переменная в поле ? что именно ты там написал ?
function SomeObj ( name )
{
this.butText = "";
txtFieldName = name;
createTextField ( txtFieldName, 1, 10, 10, 100, 23 );
txtFieldName.text = this.butText;
}
obj = new SomeObj ( "bla" );
obj.butText = "blablabla";
что-то в этом роде...
Nox Noctis
26.08.2002, 02:03
кхм... а с какой вообще радости в поле должен появиться текст ?..
ты ж не присваиваешь полю переменной вообще :)
все, что ты записываешь в поле - это дефолтовое значение переменной butText, т.е. пустое место...
а чтобы поле апдейтилось, нужно в поле определить свойство variable, причем поле не может само вытаскивать свойство object'a...
т.е. нельзя сделать, к примеру, объект a = {x:"what a hell ?!"}, а в поле вписать переменную "a.x"... (вернее сделать-то можно — работать не будет ;)) )
Тады я нихрена не понЯл...
в чём тады фишка ооп во флэш?.. :rolleyes:
Nox Noctis
26.08.2002, 02:46
а при том :))
в этой теме по части ооп пока что не было сказано ни слова :))
первая ошибка была с тем, что ты кавычки не поставил, а вторая - что ты неправильно текстовым полем воспользовался...
при чем тут ооп ? :)))
Ну а конструктор класса...
или я что-то не понимаю?..
Nox Noctis
26.08.2002, 03:10
а... ну да... "конструктор класса" - это уже целых два слова :))
я имею в виду - что все проблемы, про которые шла речь не имеют отношения к ооп вообще :)
это то же самое, что споткнувшись о поребрик удивляться нафига нужна проезжая часть :)
я пытался изменить св-во butText объекта obj с "" на "blablabla"...
Nox Noctis
26.08.2002, 03:28
дык оно меняется !..
в этом-то проблемы нет как раз... запусти свой код и посмотри переменные по ctrl+alt+v, чтобы убедиться...
Блин - ничего не меняется...
чё такое??? :eek: :confused:
Nox Noctis
26.08.2002, 03:42
ну как это не меняется ?!
я скопипастил твой код без каких-либо изменений... нажал контрол-ентер, потом нажал контрол-альт-v и увидел:
Variable _level0.obj = [object #2, class 'SomeObj'] {
butText:"blablabla"
}
Ух ты!
А я о таком не знал...
А что оно выдаёт?..
Про ctrl+alt+v понял...
но больше ничего... :( :eek: :confused: :rolleyes:
я ща сайду с ума... :D :eek: :( :confused: :rolleyes:
Nox Noctis
26.08.2002, 03:58
*ласково*
щас как дам больно
1. жмешь контрол+ентер
2. идешь в меню 'Debug'
3. смотришь на первые два пункта выпавшей менюхи
_что_ _ты_ _не_ _понял_ ? x____x
говори быстрее, а то я спать уйду :)
будешь ждать сердитых дядей до утра :)
ля-ля-ля-ля-ля... а я сошла (или сошёл???) с ума....
блин... действительно, лучше утром...
но вопрос ещё актуален
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.