Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   как сделать, чтобы вместо instance6 писало само имя переменной экземпляра класса? (http://www.flasher.ru/forum/showthread.php?t=211501)

nelco 14.09.2015 22:51

Wolsh, спасибо за такой большой ответ, я читаю книгу, сейчас читаю Колина Мука на 540 странице, потом буду читать Adobовское руководство, а потом ActionScript Cookbook... к сожалению, не всё, что в книге полностью понятно с первого раза, приходится постоянно перечитывать, и даже после этого остаются многие непонятные моменты, которые и планирую спрашивать тут, хорошо, что есть такой форум, где отвечают!
код писать начал, т.к. решил, что без практики многое из теории сразу забывается и намного эффективнее пытаться сразу применить знания на практике, чтобы запомнилось лучше.

что такое экземпляр, переменная, свойство я понимаю, а вот про ссылку и заголовок - вроде не было объяснения у Колина Мука...
ссылка - это, получается, как бы сама связь, которая указывает на объект в памяти? _button1 - это переменная-ссылка?
заголовок - это cвойство .label? (просто в адобовском руководстве оно переводится как МЕТКА)
про stage тоже не совсем понятно, если stage - только один и нет другого stage (у объектов своего), то пока не вижу смысла обращаться к stage через объект (_object.stage) все объекты же, получается, принадлежат одному stage? только находятся в разных DisplayObjectContaineraх... но с этим, думаю, разберусь по мере практики...

Добавлено через 2 минуты
Цитата:

Сообщение от Isfet (Сообщение 1186703)
как вы поймете что это за кнопка, если у вас все кнопки хранятся не в переменных, а, допустим, в массиве?

понял, да, для этого нужно

ZackMercury 15.09.2015 00:14

Isfet, разве?
Я думал, label нужен, чтобы на кнопке появлялся текст)))
И без него кнопка не кнопка.
Так что удобнее читать будет свитч именно по заголовку, ибо он отображает текст кнопки.
К тому же, да, когда кнопки в массиве это играет добрую роль.

P.S. Да, всё верно, в справке написано метка, и label переводится как метка, но правильней это называть "Заголовок кнопки", так принято.
И это грех эдобовцев, так как следовало дать имя свойству caption.

nelco 15.09.2015 05:33

Цитата:

Сообщение от ZackMercury (Сообщение 1186754)
P.S. Да, всё верно, в справке написано метка, и label переводится как метка, но правильней это называть "Заголовок кнопки", так принято.
И это грех эдобовцев, так как следовало дать имя свойству caption.

понял, спасибо, буду разбираться с функционалом...

caseyryan 15.09.2015 06:58

Цитата:

.S. Да, всё верно, в справке написано метка, и label переводится как метка, но правильней это называть "Заголовок кнопки", так принято.
И это грех эдобовцев, так как следовало дать имя свойству caption.
Это некоторая путаница, которая есть и в других языках. У Label должно быть свойство caption или text, а у кнопки Label.
Написать button.label = "blabla"; интуитивно понятнее, чем button.label.caption = "blabla";

Wolsh 15.09.2015 11:39

Цитата:

про stage тоже не совсем понятно, если stage - только один и нет другого stage (у объектов своего), то пока не вижу смысла обращаться к stage через объект (_object.stage) все объекты же, получается, принадлежат одному stage? только находятся в разных DisplayObjectContaineraх... но с этим, думаю, разберусь по мере практики...
Все верно. Стейдж — это окно флэш-плеера, если грубо. Оно одно. И все объекты отображаются в нем. Важно понять, что стейдж не является частью Вашей программы. Он, конечно, позволяет Вам сделать несколько настроек и согласен кое-что рассказать о себе через свойства, но не Вы его создаете и не Вы им управляете. Это пользователь с помощью оконного интерфейса может в любой момент изменить размер окна или просто закрыть плеер. Стейдж — это вся область отображения плеера, в котором показывается Ваше приложение. Приложение написано на ActionScript, стейдж — нет. И еще очень много классов — нет. Они только предоставляют интерфейс "в стиле" AS3, через который Вы можете их использовать в своем коде. Это относится ко всем дисплейным классам — TextField, Sprite, MovieClip и др. Все они "находятся" в плеере, и Вы никак не можете их "переписать", только дополнить ("расширить" – extends) при наследовании, создавая свои подклассы-наследники. Только они "умеют" отображаться. Создать свой собственный дисплейный класс "с нуля" невозможно в принципе — плеер просто не будет знать, как его отображать на экране. Stage — такой же дисплейный класс, но еще более закрытый, Вы не можете ни наследоваться от него, ни даже создать его экземпляр. Плеер сам создает единственный экземпляр при запуске, и сразу же создает и добавляет в него экземпляр документ-класса (мейн), то есть Ваше приложение. И стейдж, и мейн, являются контейнерами (DisplayObjectContainer – DOC), то есть такими дисплейными объектами, в которые можно добавлять другие дисплейные объекты (DisplayObject – DO). Не каждый DO является DOC. Например, в Shape и TextField нельзя добавить другие объекты.
У всех контейнеров есть так называемый СписокОтображения (Display List). Это не класс, это абстрактное понятие (физически реализованное чем-то вроде скрытого массива). Само понятие "добавить объект в контейнер" означает добавить объект в список отображения контейнера. Пока объект не добавлен ни в один список, он не будет отображаться на экране и [автоматически] взаимодействовать с другими объектами, которые отображаются. При добавлении одного контейнера в другой, его список включается в список старшего ("родителя" — parent). Если родитель сам никуда не добавлен, то и "ребенок" (child) тоже не будет отображаться. Чтобы объект появился на экране, он должен быть в списке отображения стейджа, то есть ВСЕ его старшие контейнеры должны в конечном итоге быть добавлены в мейн, который автоматически добавлен на стейдж. Представьте стейдж как пустое пространство, в котором находится огромный аквариум — мейн. В аквариуме могут лежать камни, и другие стеклянные банки, в которых камни или еще стеклянные баночки, в которых камни, и так [почти] до бесконечности. Если какую-то стеклянную банку вытащить, то будет изъято из аквариума и все ее содержимое. Оно больше не в аквариуме, не в списке отображения стейдж, хотя и остается в своей банке — в списке отображения своего контейнера. Просто контейнер больше не в списке отображения стейдж.

nelco 19.09.2015 07:53

спасибо за ответы! главное - понял, что stage - ОДИН! :) с displayList и DO in DOC разобрался, вот сижу с событиями теперь разбираюсь, опять непонятно за что цепляться слушателем в parent объектах при диспетчеризации события из ребёнка... буду спрашивать в новой теме

Добавлено через 17 минут
Цитата:

Сообщение от caseyryan (Сообщение 1186761)
Это некоторая путаница, которая есть и в других языках. У Label должно быть свойство caption или text, а у кнопки Label.
Написать button.label = "blabla"; интуитивно понятнее, чем button.label.caption = "blabla";

как задать это свойство label? у объектов TextField и Sprite не подсвечивается во FlashDevelope оно

ZackMercury 19.09.2015 10:02

о боже, я ш сказал, label - это надпись на кнопке...

nelco 19.09.2015 10:08

Цитата:

Сообщение от ZackMercury (Сообщение 1186969)
о боже, я ш сказал, label - это надпись на кнопке...

какая строка кода её создаёт, я про это? :\ или Вы имеете в виду что-то из самого Flash редактора? я просто из FlashDevelopa делаю без графического редактора... если ввожу в google "label actionscript" то выходит какой-то отдельный класс Label, а не свойство DisplayObjecta

ZackMercury 19.09.2015 10:10

Код AS3:

var button:fl.controls.Button = new fl.controls.Button();
addChild(button);
button.label = "Нажми меня";


nelco 19.09.2015 10:13

а, всё, понял, значит label есть только у объектов типа Button, значит для Spritов и TextFieldoв он не подходит, для них видимо используется свойство .name? буду пробовать, спасибо ещё раз за ответ!


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

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