Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Error #2012: Obj_mc class cannot be instantiated. (http://www.flasher.ru/forum/showthread.php?t=90812)

Nirth 18.01.2007 20:34

Цитата:

Ты можешь это сделать, объявив публичную переменную Some_fn типа Function. Но так не делают в AS3.
Что то мне подсказывает что так будут делать толпы дизайнеров=)

Nirth 18.01.2007 20:35

Цитата:

ну ребят, а форум для чего тогда?
знаю что незнаю
подскажите плиз
Ты меня спрашиваешь? хорошо скажу
этот форум для обсуждения Flash Platform'ы.

Твой пост, о основых ООП, связанная тема, но можно было бы и в гугле поискать статью, или почитать книжку.

etc 18.01.2007 20:43

Nirth, мое дело предложить :)

farmonol 19.01.2007 13:03

Цитата:

Сообщение от __etc
Ты можешь расширять только те классы, которые уже наследуются от DisplayObject.

Ok. Sprite - дочерний класс по отношению к DisplayObject?
Хорошо, я делаю свой класс Obj_mc extends Sprite , расширяю его своими методами и свойствами.
У меня есть ранее определенный класс с мувиком:

[Embed(source="mc.swf",symbol="mc")]
public var mc2:Class;

теперь как мне расширить класс mc2 методами определенными в Obj_mc?

Иными словами в конце нужно получить возможность обращения к своим методам наравне с имеющимися в MovieClip:

Пример:

Код:

var tt:*=gm1.char_create(mc2,'mc');
                    tt.x = 200;
                    tt.y = 300;
                    tt.test(); -> вот например

Как это осуществить? :(

etc 19.01.2007 14:25

Sprite — дочерний к DisplayObject.

Как ты думаешь, я могу понять, что такое tt, gm1, char_create, mc2, mc, test?

farmonol 19.01.2007 15:16

Цитата:

Сообщение от __etc
Sprite — дочерний к DisplayObject.

Как ты думаешь, я могу понять, что такое tt, gm1, char_create, mc2, mc, test?

Извини, приведу код полностью.
Вызов из конструктора default класса:
Код:


 package
 {
 import flash.display.*;
   
 public class Default extends Sprite
  {
 
 [Embed(source="mc.swf",symbol="mc")]
 public var mc2:Class;
 
  public function Default():void
    {
                    var gm1:Gm = new Gm(stage);
                    var tt:*=gm1.char_create(mc2,'mc');
                    tt.x = 200;
                    tt.y = 300;
                    tt.test();             
     
                }
        }
 }

Класс Gm c методом char_create() :
Код:

package {
    import flash.display.*;
    import flash.filters.DisplacementMapFilter; 
 
   
 public class Gm extends Sprite
  {
  public var inst:Object;
   
    public function Gm(z:Object):void
    {
     
      inst = z;
    }
   
          // ф-ция отображения мувиков:
 
  public function char_create(mc:Class,mc_name:String):*
        {
          var obj:Sprite;
          obj=inst.addChild(new mc());
                                          obj.name=mc_name;
 
                                          return(obj);
        }
 
 // вот к примеру функция Test(), которая должна
 // каким-то образом стать методом объекта tt (см.выше):
 
          public function Test() {                                 
                                trace("Hello World");
                                      }
  }
 }


Nirth 19.01.2007 16:48

советую пользоватся AS1

farmonol 19.01.2007 16:57

спасибо за отличную идею!

Nirth 19.01.2007 19:08

То что ты делаешь, противоречит идеологии AS3.

если тебе нужен метод, ты создаешь в его классе, пасовать методы туда сюда это в ас1 было принято.

Если тебе нужно чтобы у загруженого мувика был какой то функционал, которого нету в самом мувике, ты просто грузишь в его в оболочку, и в оболочке есть то что нужно. или делаешь мувику поле manager, и после загрузки, присобачиваешь свой менеджер, и работаешь через него.

farmonol 19.01.2007 19:33

Цитата:

Сообщение от Nirth
То что ты делаешь, противоречит идеологии AS3.

если тебе нужен метод, ты создаешь в его классе, пасовать методы туда сюда это в ас1 было принято.

Если тебе нужно чтобы у загруженого мувика был какой то функционал, которого нету в самом мувике, ты просто грузишь в его в оболочку, и в оболочке есть то что нужно. или делаешь мувику поле manager, и после загрузки, присобачиваешь свой менеджер, и работаешь через него.

а что за оболочка имеется ввиду?:umnik2:


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

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