Модераторы: SoWa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Расширенный класс MovieClip 
V
    Опции темы
tofsla
  Дата 24.9.2007, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 90
Регистрация: 17.5.2005
Где: Москва

Репутация: 1
Всего: 1



Добрый день,

можно ли использовать класс-наследник MovieClip, не привязанный к MovieClip'у в библиотеке?

например, такой класс

Код

class Dominoshka extends MovieClip
{
    public var top:Number;
    public var bottom:Number;
    public var top_mc:MovieClip = null;
    public var bottom_mc:MovieClip = null;
    //-------------------------------------
    public static var highestDepth:Number;
    //-------------------------------------
    public function Dominoshka()
    {
        highestDepth++;
        top_mc=this.attachMovie('dom'+top,'dom'+highestDepth,highestDepth);
        top_mc._x=0;
        top_mc._y=-25;
        highestDepth++;
        bottom_mc=this.attachMovie('dom'+bottom,'dom'+highestDepth,highestDepth);
        bottom_mc._x=0;
        bottom_mc._y=25;    
    }
}


если его привязать к пустому мувику в библиотеке, все должно замечательно работать, но мне кажется должен быть какой-то более простой путь или нет?

 smile 

PM MAIL   Вверх
Maksys
Дата 25.9.2007, 04:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Future Splasher
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 15.6.2005
Где: Екатеринбург

Репутация: 3
Всего: 17



Конечно можно... библиотека вообще для дизайнеров... настоящий программист кодит все ручками он даже мышкой не пользуется....
Для тебя нужны такие методы MovieClip Класса:
Код

createEmptyMovieClip   (MovieClip.createEmptyMovieClip method);
beginBitmapFill (MovieClip.beginBitmapFill method);
beginFill (MovieClip.beginFill method);
beginGradientFill (MovieClip.beginGradientFill method);
curveTo (MovieClip.curveTo method);
duplicateMovieClip (MovieClip.duplicateMovieClip method);
endFill (MovieClip.endFill method);
lineTo (MovieClip.lineTo method);
moveTo (MovieClip.moveTo method);


Это сообщение отредактировал(а) Maksys - 25.9.2007, 04:36


--------------------
 С уважением, BiMaWa™©.
user posted image
user posted image
PM MAIL ICQ Skype GTalk   Вверх
tofsla
Дата 25.9.2007, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 90
Регистрация: 17.5.2005
Где: Москва

Репутация: 1
Всего: 1



Это я знаю, но так я могу создать пустой клип и что-то там нарисовать. 
А как можно вот с таким классом работать, ведь чтобы мувик добавить в флешку, мне надо указать глубину и предка, то если бы он был в библиотеке, я бы написала

Код

new_mc=_root.attachMovie('emptyDom','newDom_mc',5,{top:1,bottom:2});


По идее, мне надо вызвать конструктор MovieClip в своем конструкторе, но его явно вызывать не положено :/


PM MAIL   Вверх
AlDev
Дата 25.9.2007, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 8
Всего: 50



читай про registerClass
PM MAIL WWW ICQ YIM MSN   Вверх
Maksys
Дата 25.9.2007, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Future Splasher
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 15.6.2005
Где: Екатеринбург

Репутация: 3
Всего: 17



Цитата(tofsla @  25.9.2007,  14:42 Найти цитируемый пост)
Это я знаю, но так я могу создать пустой клип и что-то там нарисовать. 

_root.createEmptyMovieClip...



--------------------
 С уважением, BiMaWa™©.
user posted image
user posted image
PM MAIL ICQ Skype GTalk   Вверх
tofsla
Дата 25.9.2007, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 90
Регистрация: 17.5.2005
Где: Москва

Репутация: 1
Всего: 1



[
Цитата

QUOTE=tofsla, 25.9.2007,  14:42, post1266295]Это я знаю, но так я могу создать пустой клип и что-то там нарисовать. 

_root.createEmptyMovieClip...
[/quote]

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

----------------

про registerClass читала, пока не понимаю как сделать

Цитата

When an instance of the specified movie clip symbol is placed on the Timeline, it is registered to the class specified by the theClass parameter rather than to the class MovieClip. 

When an instance of the specified movie clip symbol is created by using MovieClip.attachMovie() or MovieClip.duplicateMovieClip(), it is registered to the class specified by theClass rather than to the MovieClip class.


Получается, что registerClass связывает с мувиком, который опять же есть в библиотеке 

PM MAIL   Вверх
Maksys
Дата 26.9.2007, 04:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Future Splasher
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 15.6.2005
Где: Екатеринбург

Репутация: 3
Всего: 17



Цитата(tofsla @  26.9.2007,  00:48 Найти цитируемый пост)
неправильно сформулировала smile, я могу могу создать пустой клип и что-то там нарисовать, с помощью тех функций, о которых ты написал. 
А у меня есть класс-наследник класса MovieClip, в конструкторе этого класса сразу что-то рисуется, и мне надо каким-то образом создать экземпляр этого класса, чтобы мувик на экране появился.

А так не получается?
Код

import Dominoshka
var domino1=new Dominoshka();
var domino2=new Dominoshka();

Все равно не могу понять в чем проблемма.
П.С. код
Код

    public function Dominoshka()
    {
        highestDepth++;
        top_mc=this.attachMovie('dom'+top,'dom'+highestDepth,highestDepth);
        top_mc._x=0;
        top_mc._y=-25;
        highestDepth++;
        bottom_mc=this.attachMovie('dom'+bottom,'dom'+highestDepth,highestDepth);
        bottom_mc._x=0;
        bottom_mc._y=25;    
    }

можно заменить и оптимизировать на
Код

    public function Dominoshka()
    {
        top_mc=this.attachMovie('dom'+top,'dom'+this.getNextHighestDepth(),this.getNextHighestDepth());
        top_mc._x=0;
        top_mc._y=-25;
        bottom_mc=this.attachMovie('dom'+bottom,'dom'+this.getNextHighestDepth(),this.getNextHighestDepth());
        bottom_mc._x=0;
        bottom_mc._y=25;    
    }



--------------------
 С уважением, BiMaWa™©.
user posted image
user posted image
PM MAIL ICQ Skype GTalk   Вверх
AlDev
Дата 26.9.2007, 06:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 8
Всего: 50



Код

class Dominoshka extends MovieClip
{

    static var SymbolName:String = "__Packages.Dominoshka ";
    static var SymbolOwner:Function = Dominoshka;
    static var SymbolLinked:Object = Object.registerClass(SymbolName, SymbolOwner);


    public var top:Number;
    public var bottom:Number;
    public var top_mc:MovieClip = null;
    public var bottom_mc:MovieClip = null;
    //-------------------------------------
    public static var highestDepth:Number;
    //-------------------------------------
    public function Dominoshka()
    {
        highestDepth++;
        top_mc=this.attachMovie('dom'+top,'dom'+highestDepth,highestDepth);
        top_mc._x=0;
        top_mc._y=-25;
        highestDepth++;
        bottom_mc=this.attachMovie('dom'+bottom,'dom'+highestDepth,highestDepth);
        bottom_mc._x=0;
        bottom_mc._y=25;    
    }
}

PM MAIL WWW ICQ YIM MSN   Вверх
tofsla
Дата 26.9.2007, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 90
Регистрация: 17.5.2005
Где: Москва

Репутация: 1
Всего: 1



Maksys
Цитата

А так не получается?


не получается, то есть конструктор вызывается, но например результат вот этого кода в конструкторе будет undefined

Код

top_mc = this.attachMovie('dom1', 'one_dom'+highestDepth, highestDepth);
trace(top_mc);


Оптимизировать не получится, мне надо чтобы под 6-ой работало

AlDev

Ура, работает, спасибо большое smile

Код

var dom_mc:MovieClip = _root.attachMovie(Dominoshka.SymbolName,'d1',1,{top:1,bottom:2});


Это сообщение отредактировал(а) tofsla - 26.9.2007, 12:14
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Flash"
AlDev
SoWa
  • Если вы хотите предложить кому-либо работу, то пишите или в личку, или оставляйте сообщения в специально предназначеном для этого форуме "Объявления о найме специалистов"
  • Один вопрос - одна тема. Не надо переходов от одного вопроса к другому.
  • Если вы хотите показать какой-нибудь ваш мульт, причём показать, а не предоставить исходник, то вам сюда
  • Вопросы по разработке интернет-приложений на Flex и вопросы по MXML пишите в раздел Flex
  • Смотрим в будущее. ActionScript 3 обсуждается в форуме ActionScript 3
  • Новости из мира Flash.
  • New! [code=ascript][/code] - подсветка ActionScript + wikipedia help

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, AlDev, SoWa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | ActionScript 1,2 | Следующая тема »


 




[ Время генерации скрипта: 0.0739 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.