PDA

Просмотр полной версии : ООП в MX


metton
25.08.2002, 20:31
Для начала - здрасте!
Такой вот вопросец возник: изменилось ли что-то в ООП в MX по сравнению с 5-кой? Есть такое ощущение, что кое-что изменилось... или я что-то не понимаю...
была такая замутка:

function SomeObject ( name )
{
this[name1] = name;
trace ( this[name1] );
}

и при обращении к свойству name1: SomeObject ( "ddd" )
почему-то выводится undefined
разве свойства объекта обязательно должны быть параметрами функции-конструктора??? :confused:
спасибо... :)

metton
25.08.2002, 20:50
И ещё вопрос...
Почему после создания объекта при присваивании его св-вам значений в объекте они не меняются?..
т.е., например, в функции-конструкторе объекта я создаю текстовое поле и одним из св-в объекта является значение, которое нужно присвоить текстовому полю...
при создании объекта ( myObject = new Object ) я сначала не передаю ему значение текстового поля...
а после пишу
myObject.myTxtFieldVal = "bla" ( где myTxtFieldVal - свойство значение которого присваивается текстовому полю )
и ничего не происходит - текст не появляется в текстовом поле.. :(
почему???
спасибо...

Nox Noctis
25.08.2002, 21:32
правильно:

function SomeObject ( name ) {
this["name1"] = name;
trace ( this["name1"] );
}

чувствуешь разницу ? :D

metton
25.08.2002, 22:16
2Nox Noctis
спасибо ... :)
я уже понял - в моём случае просто нужно было использовать точечную запись...

А вот второй вопрос всё ещё актуален...

Nox Noctis
26.08.2002, 00:11
код в студию :)
и как называется переменная в поле ? что именно ты там написал ?

metton
26.08.2002, 01:01
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"... (вернее сделать-то можно — работать не будет ;)) )

metton
26.08.2002, 02:09
Тады я нихрена не понЯл...
в чём тады фишка ооп во флэш?.. :rolleyes:

Nox Noctis
26.08.2002, 02:46
а при том :))
в этой теме по части ооп пока что не было сказано ни слова :))

первая ошибка была с тем, что ты кавычки не поставил, а вторая - что ты неправильно текстовым полем воспользовался...

при чем тут ооп ? :)))

metton
26.08.2002, 03:06
Ну а конструктор класса...
или я что-то не понимаю?..

Nox Noctis
26.08.2002, 03:10
а... ну да... "конструктор класса" - это уже целых два слова :))

я имею в виду - что все проблемы, про которые шла речь не имеют отношения к ооп вообще :)

это то же самое, что споткнувшись о поребрик удивляться нафига нужна проезжая часть :)

metton
26.08.2002, 03:16
я пытался изменить св-во butText объекта obj с "" на "blablabla"...

Nox Noctis
26.08.2002, 03:28
дык оно меняется !..
в этом-то проблемы нет как раз... запусти свой код и посмотри переменные по ctrl+alt+v, чтобы убедиться...

metton
26.08.2002, 03:38
Блин - ничего не меняется...
чё такое??? :eek: :confused:

Nox Noctis
26.08.2002, 03:42
ну как это не меняется ?!
я скопипастил твой код без каких-либо изменений... нажал контрол-ентер, потом нажал контрол-альт-v и увидел:

Variable _level0.obj = [object #2, class 'SomeObj'] {
butText:"blablabla"
}

metton
26.08.2002, 03:46
Ух ты!
А я о таком не знал...
А что оно выдаёт?..

metton
26.08.2002, 03:54
Про ctrl+alt+v понял...
но больше ничего... :( :eek: :confused: :rolleyes:
я ща сайду с ума... :D :eek: :( :confused: :rolleyes:

Nox Noctis
26.08.2002, 03:58
*ласково*
щас как дам больно

1. жмешь контрол+ентер
2. идешь в меню 'Debug'
3. смотришь на первые два пункта выпавшей менюхи

_что_ _ты_ _не_ _понял_ ? x____x

говори быстрее, а то я спать уйду :)
будешь ждать сердитых дядей до утра :)

metton
26.08.2002, 04:04
ля-ля-ля-ля-ля... а я сошла (или сошёл???) с ума....
блин... действительно, лучше утром...
но вопрос ещё актуален