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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.07.2008, 18:43
AL.exe вне форума Посмотреть профиль Отправить личное сообщение для AL.exe Посетить домашнюю страницу AL.exe Найти все сообщения от AL.exe
  № 1  
Ответить с цитированием
AL.exe
 
Аватар для AL.exe

Регистрация: Jan 2004
Адрес: Net
Сообщений: 1,049
Отправить сообщение для AL.exe с помощью ICQ
По умолчанию Как добавлять объекты на сцену из внешнего класса, не прописывая DocumentClass?

Вопрос в слудеюущем. Каким образом можно добавить на сцену объект из внешнего класса TestClass (класс не наследуется ни от чего), если не указан Document class, а объект класса TestClass создается в первом кадре главной монатжной линейки? (Да, знаю, что писать код в кадрах не этично, но все же?)

И еще один вопрос, вызывающий интерес. На базе какого класса строится MainTimeLine? Если проделать небольшой опыт и написать приложение полностью на классах (с Document Class), а потом в любой кадр добавить код (пусть даже это будет комментарий), то мувик не скомпилируется, не найдя у главного класса метод AddFrameScript (который, естественно, в докуменатции не указан). Было бы интересно в Document Class прописать свой класс (наследующийся от того же, от чего наследуется MainTimeLine), который держит этот метод.

P.S. Да, кстати, вот еще вопрос: как из любого класса получить доступ к главному классу? Т.е., понятно, что можно относительный путь указать, но если он не известен? Не передавать же каждому классу ссылку на главный...)
__________________
Дело не в тебе

Старый 02.07.2008, 18:50
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Document class автоматически создается, если код написан написан в кадре. Соответственно код в кадре суть один из методов этого Document class.

MainTimeline наследуется от MovieClip, у которого есть метод addFrameScript.

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

Регистрация: Jul 2007
Сообщений: 805
Отправить сообщение для ramshteks с помощью ICQ Отправить сообщение для ramshteks с помощью Skype™
Цитата:
P.S. Да, кстати, вот еще вопрос: как из любого класса получить доступ к главному классу? Т.е., понятно, что можно относительный путь указать, но если он не известен? Не передавать же каждому классу ссылку на главный...)
придется передовать ссылку, думаю это не такая уж и проблема)
Ведь те не обязательно к примеру в конструктор передавать, ты можешь по мере надобности кидать только в необходимый метод)

Старый 02.07.2008, 19:15
AL.exe вне форума Посмотреть профиль Отправить личное сообщение для AL.exe Посетить домашнюю страницу AL.exe Найти все сообщения от AL.exe
  № 4  
Ответить с цитированием
AL.exe
 
Аватар для AL.exe

Регистрация: Jan 2004
Адрес: Net
Сообщений: 1,049
Отправить сообщение для AL.exe с помощью ICQ
О, спасибо Т.е., если Document Class наследовать от Movie Clip, то код в кадрах, по идее, должен работать (жаль, возможности сейчас попробовать нет [да и толку от этого, на самом деле, особенно никакого нет, но зато теперь понятно]).

А как обращаться к Document Class? Я так понимаю, в AS3 нет абсолютных путей.(пока писал сообщение, уже отпостили Спасибо)
Ну, скажем, у меня, гипотетически есть внешний класс, ни от чего не унаследованный и я из-под него хочу нарисовать что-то на сцене? Как это возможно сделать? Только передав ссылку на какой-либо объект, унаследованный от DisplayObject?
__________________
Дело не в тебе


Последний раз редактировалось AL.exe; 02.07.2008 в 19:17.
Старый 02.07.2008, 19:25
ramshteks вне форума Посмотреть профиль Отправить личное сообщение для ramshteks Найти все сообщения от ramshteks
  № 5  
Ответить с цитированием
ramshteks
 
Аватар для ramshteks

Регистрация: Jul 2007
Сообщений: 805
Отправить сообщение для ramshteks с помощью ICQ Отправить сообщение для ramshteks с помощью Skype™
полиморфизм тебе в помощь )
псевдокод тебе:
Код:
класс Главный{

обьектНекланогоКласса= новый НеГлавный(this)//ну это из ас3.0 ))

....
}

класс НеГлавный(){
    метод НеГлавный(ссылкаНаГлавныйКласс как Главный){
        ссылкаНаГлавныйКласс.свойствоГлавногоКласса=новоеЗначение;
   }
}
ну примерно так)

Старый 02.07.2008, 19:31
AL.exe вне форума Посмотреть профиль Отправить личное сообщение для AL.exe Посетить домашнюю страницу AL.exe Найти все сообщения от AL.exe
  № 6  
Ответить с цитированием
AL.exe
 
Аватар для AL.exe

Регистрация: Jan 2004
Адрес: Net
Сообщений: 1,049
Отправить сообщение для AL.exe с помощью ICQ
Ну, это ясно Т.е., к сцене, как к держателю объектов обращаться напрямую никак иначе нельзя? К примеру, тот же
Код:
import flash.display.*
...
Stage.addChild(something)
работать не хочет...

Просто как-то странно сделано, что нельзя из любого класса что-либо отрисовывать на сцене, не передавая этмоу классу ссылку на Document Class (ну или любой другой, унаследованный от DisplayObject)...
__________________
Дело не в тебе


Последний раз редактировалось AL.exe; 02.07.2008 в 19:37.
Старый 02.07.2008, 19:35
ramshteks вне форума Посмотреть профиль Отправить личное сообщение для ramshteks Найти все сообщения от ramshteks
  № 7  
Ответить с цитированием
ramshteks
 
Аватар для ramshteks

Регистрация: Jul 2007
Сообщений: 805
Отправить сообщение для ramshteks с помощью ICQ Отправить сообщение для ramshteks с помощью Skype™
ну помоему ниче странного))

не хочет потму что во-первых!
Stage это класс а stage его экземпляр!
НО!!! главное другое!

addChild(обьект) и никаких приписок слева)
она прицепляет к тому откуда ты ее вызываешь )

Старый 02.07.2008, 19:41
AL.exe вне форума Посмотреть профиль Отправить личное сообщение для AL.exe Посетить домашнюю страницу AL.exe Найти все сообщения от AL.exe
  № 8  
Ответить с цитированием
AL.exe
 
Аватар для AL.exe

Регистрация: Jan 2004
Адрес: Net
Сообщений: 1,049
Отправить сообщение для AL.exe с помощью ICQ
Цитата:
Stage это класс а stage его экземпляр!
stage.addChild(something) тоже не работает :-\

~ ~ ~

Цитата:
addChild(обьект) и никаких приписок слева)
Почему никаких приписок слева? Это же метод, к примеру, если я (смотря выше) передаю ссылку на Главный класс, унаследованный от DisplayObject, то

Код:
главныйКласс.addChild(something) //работать будет
~ ~ ~

Цитата:
она прицепляет к тому откуда ты ее вызываешь )
Да, прицепила бы, но по условию класс не унаследован ни от чего, соответственно, и метода AddChild у него нет, следовательно не сработает это


~ ~ ~

Что ж, видимо, придется смирится с этим и передавать ссылку на объект для рисования... Соответсвенно, и рисовать из внешнего класса на сцене с не определенным собственноручно Document Class не удасться..
__________________
Дело не в тебе


Последний раз редактировалось AL.exe; 02.07.2008 в 19:51.
Старый 02.07.2008, 20:24
ramshteks вне форума Посмотреть профиль Отправить личное сообщение для ramshteks Найти все сообщения от ramshteks
  № 9  
Ответить с цитированием
ramshteks
 
Аватар для ramshteks

Регистрация: Jul 2007
Сообщений: 805
Отправить сообщение для ramshteks с помощью ICQ Отправить сообщение для ramshteks с помощью Skype™
если ты хочешь прицепить графику цепляй ее к классу наследованному от мувика) или рисуй непосредственно в главном )

я не знаю других подходов, узнаешь кинь в эту тему)

Старый 02.07.2008, 20:55
AL.exe вне форума Посмотреть профиль Отправить личное сообщение для AL.exe Посетить домашнюю страницу AL.exe Найти все сообщения от AL.exe
  № 10  
Ответить с цитированием
AL.exe
 
Аватар для AL.exe

Регистрация: Jan 2004
Адрес: Net
Сообщений: 1,049
Отправить сообщение для AL.exe с помощью ICQ
Хорошо, и на этом спасибо Но все-таки, зря убрали абсолютные пути =\ Даже на stage не сошлешься, если не знаешь, где находишься без передачи ссылки...
__________________
Дело не в тебе

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

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

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


 


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


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