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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.11.2014, 12:34
Hamid вне форума Посмотреть профиль Отправить личное сообщение для Hamid Найти все сообщения от Hamid
  № 1  
Ответить с цитированием
Hamid

Регистрация: Aug 2011
Сообщений: 65
Question Динамическое наследование класса

Всем привет. Есть две флешки с кодом и графикой. Нужно флешку с графикой загрузить во флешку с кодом, потом вытащить графику getDefenition-ом и наследовать(расширить) его. Как это можно сделать? Можно ли вообще на ходу собирать классы и наследовать их?

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Нельзя. Да и зачем наследоваться от этого класса? Что это даст?
Цитата:
потом вытащить графику getDefenition-ом
Интересно, как это? Что это за такой магический getDefinition который вытаскивает графику?

Старый 25.11.2014, 13:44
Hamid вне форума Посмотреть профиль Отправить личное сообщение для Hamid Найти все сообщения от Hamid
  № 3  
Ответить с цитированием
Hamid

Регистрация: Aug 2011
Сообщений: 65
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Нельзя. Да и зачем наследоваться от этого класса? Что это даст?

Интересно, как это? Что это за такой магический getDefinition который вытаскивает графику?
Допустим проект сделан в flash professional, там можно у графики менять базовый класс. Т.е. есть клип и к нему можно приписать нужные методы, получается расширение мувиклипа. Но, если я работаю в флеш билдере или подобной среде, то такой трюк не понятно как сделать.

Можно написать класс который наследуется от мувиклип, а сам мувиклип добавить как дочерний элемент, но так не удобно. Нужно графику клипа сделать внутренностью моего нового класса, надеюсь понятно описал))

Да почему же магический:
flash.utils.getDefinitionByName(name:String):Object
Возвращает ссылку на объект класса, заданного параметром name.
Параметры:
name Имя класса.
Возвращает:
Возвращает ссылку на объект класса, заданного параметром name.

Старый 25.11.2014, 14:25
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 4  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Задуманного не добиться и придется Вам принять этот "неудобный" для Вас вариант:
Цитата:
Можно написать класс который наследуется от мувиклип, а сам мувиклип добавить как дочерний элемент, но так не удобно.
От себя добавлю, что не мувиклип тут нужен будет, а Sprite.

Цитата:
Да почему же магический:
Потому что Вы написали getDefinition сначала, хотя подразумевали другой метод. Естественно caseyryan смутило, ведь такой метод на самом деле существует и он ничего с графикой не делает.
__________________
тут я

Старый 25.11.2014, 14:38
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 5  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Цитата:
Сообщение от Hamid Посмотреть сообщение
Допустим проект сделан в flash professional, там можно у графики менять базовый класс. Т.е. есть клип и к нему можно приписать нужные методы, получается расширение мувиклипа. Но, если я работаю в флеш билдере или подобной среде, то такой трюк не понятно как сделать.
гляньте http://www.flashdevelop.org/wikidocs...ashCS3Workflow
там о FD речь, но сути не меняет

Старый 25.11.2014, 15:08
PainKiller вне форума Посмотреть профиль Отправить личное сообщение для PainKiller Найти все сообщения от PainKiller
  № 6  
Ответить с цитированием
PainKiller
 
Аватар для PainKiller

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
Цитата:
Можно ли вообще на ходу собирать классы и наследовать их?
На самом деле можно, но не думаю что в вашем случае это будет хорошим решением проблемы.

Добавлено через 1 минуту
Если есть класс графики (который дергается из флешки), лучше добавить ему какие то дополнительные свойства композицией, это будет самый простой вариант.

Старый 25.11.2014, 15:32
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 7  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Цитата:
Сообщение от PainKiller Посмотреть сообщение
На самом деле можно, но не думаю что в вашем случае это будет хорошим решением проблемы.
поподробнее бы про собирать-наследовать на ходу: как будем наследовать то, чего нет при компиляции, или компилятор тоже на борту?

Старый 25.11.2014, 16:00
Hamid вне форума Посмотреть профиль Отправить личное сообщение для Hamid Найти все сообщения от Hamid
  № 8  
Ответить с цитированием
Hamid

Регистрация: Aug 2011
Сообщений: 65
Цитата:
Сообщение от silin Посмотреть сообщение
гляньте http://www.flashdevelop.org/wikidocs...ashCS3Workflow
там о FD речь, но сути не меняет
С английским плохо(, с названием метода(detDefinition) неточность вышла. Если я правильно понял, то флеш девелоп настраивается так, что бы проект компилировался в falsh professionale. Такое когда то делал, как вариант подходит. Но к сожалению у меня билдер, и этот способ не удобен, всегда 2среды будут работать.

Что касается динамических классов, когда то видел в коде создавали класс по ходу выполнения. И вообще AS3 вроде как может выполнять код из строки, где то библиотека даже была специальная.

Думал так попробовать:
Код AS1/AS2:
[Embed(source="file.swf#MyClass")]
public class MyClass extends ExtMovieClip {......}
Но так ембед не работает.

Старый 25.11.2014, 16:23
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 9  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Цитата:
Сообщение от Hamid Посмотреть сообщение
С английским плохо(, с названием метода(detDefinition) неточность вышла. Если я правильно понял, то флеш девелоп настраивается так, что бы проект компилировался в falsh professionale. Такое когда то делал, как вариант подходит. Но к сожалению у меня билдер, и этот способ не удобен, всегда 2среды будут работать.
нене, смысл в том, что в falsh professionale компилится не флешка как таковая, а SWC, которую можно подключить к FD(или FB)-проекту и работать с ее бтблиотекой(классами)- создавать екзмпляры, расширять и т.п.
это, естественно, подходит для варианта когда исходная исходная флешка уже есть на момент разработки-компиляции

если же речь все-таки о загружаемой флешке, то, естественно, все это не проходит..
решением в этом случае может быть интерфейс, в котором будет описано все, что от загржаемой флешки нужно( или все, что она может предоставить), тогда в загружающей флешке будем расширять ее функционал, обращаясь к ней не через класс, а через этот интрфейс

Старый 25.11.2014, 19:59
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 10  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Можно и собирать в рантайме байткод и загружать в аппдомен через loadBytes()
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

Теги
класс , наследование , расширение
Опции темы
Опции просмотра

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

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


 


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


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