Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   класс от MovieClip. посмотрите, пож-та.. (http://www.flasher.ru/forum/showthread.php?t=90695)

mr.zed 16.01.2007 20:15

класс от MovieClip. посмотрите, пож-та..
 
Суть: картинки в бибилиотеке (цветочки). Надо их множить на экране. Для этого создал класс picFlower чтобы потом создавать переменные pic01, pic02, pic03 и т.д. и что бы иметь возможность ими управлять. Но на экране пусто. При отладке шаг "1" проходит, а "2" нет.

есть класс picFlower.as:
Код:

import flash.display.BitmapData;
class picFlower extends MovieClip {
  var pic01:MovieClip;
  var pic02:MovieClip;
  function picFlower(mc,x1,y1){
    trace(1);
    createEmptyMovieClip(mc,0);
    mc._x=x1; mc._y=y1;
    pic01=mc.createEmptyMovieClip("pic01",0);
    pic01.attachBitmap(BitmapData.loadBitmap("Fl0201",0),0);
    pic02=mc.createEmptyMovieClip("pic02",2);
    pic02.attachBitmap(BitmapData.loadBitmap("Fl0202",0),0);
    pic01._y=-64; pic02._y=-11;
  }
  function onEnterFrame (){
    trace(2);
    if(_Xscale<100){
          this._rotation++; this._Xscale++; this._Yscale++;
    }
  }
}

во флеше пишу: (наверное неправильно, но пробовал по-разному)
Код:

var pic02=new picFlower(pic02,150,150);
var pic03=new picFlower(pic03,300,300);

Заранее спасибо.

etc 16.01.2007 20:20

Имена классов должны начинатся с прописной буквы.
Твой класс не является наследником MovieClip (мувикливы не создаются через конструктор), так что объявление extends MovieClip лишнее.
Нужно использовать attachMovie и параметры клипа передавать четвертым аргументом. Тогда использование extends MovieClip оправдано.

mr.zed 16.01.2007 21:35

Цитата:

Сообщение от __etc
Нужно использовать attachMovie и параметры клипа передавать четвертым аргументом. Тогда использование extends MovieClip оправдано.

так понимаю, что в если использовать class PicFlower extends MovieClip, то уже создается клип, к которому нужно аттачить битмапы? Я пометил красным, где не могу разобраться. Подскажите. сам уже киплю просто.
Код:

import flash.display.BitmapData;
class PicFlower extends MovieClip {
  var pic01:MovieClip;
  var pic02:MovieClip;
  function PicFlower(x1,y1){
    trace(x1+" "+y1);
    this._x=x1; this._y=y1;

    ??????attachMovie("mc","pic01",0);
    pic01.attachBitmap(BitmapData.loadBitmap("Fl0201",0),0);
  }
}

Наворотил дров.......

etc 17.01.2007 00:04

Нет, в библитеке должен быть пустой мувик с идентификатором и назначенным классом PicFlower.

В руте (допустим), пишешь:
Код:

import PicFlower;
var pic:PicFlower = PicFlower(this.attachMovie("picFlowerId","pic0",0,{x1:10,x1:30}));

Класс PicFlower при этом должен выглядеть примерно так:

Код:

import flash.display.BitmapData;
class PicFlower extends MovieClip {
    private var pic01:MovieClip;
    private var pic02:MovieClip;
    private var x1:Number;
    private var y1:Number;
    private function PicFlower() {
        super();
        this._x = this.x1;
        this._y = this.y1;

        this.pic01 = this.attachMovie("mc","pic01",0);
        this.pic01.attachBitmap(BitmapData.loadBitmap("Fl0201",0),0);
    }
}


mr.zed 17.01.2007 10:31

СПАСИБО!!!!

Nirth 17.01.2007 10:40

или создаем через __proto__

вот например - http://orangeflash.eu/?p=10

etc 17.01.2007 11:14

У меня этим же занимается McFactory, но __proto__ не есть правильная вещь, если применяется не сознательно.

mr.zed, я там super ещё добавил.

Kikasso 17.01.2007 16:26

Цитата:

Сообщение от __etc
Код:

import PicFlower;
var pic:PicFlower = PicFlower(this.attachMovie("picFlowerId","pic0",0,{x1:10,x1:30}));


Это точно? а не так?
Код:

import PicFlower;
var pic:PicFlower = this.attachMovie("picFlowerId","pic0",0,{x1:10,x1:30});

Может я что-то не понимаю..

etc 17.01.2007 16:33

Именно так. Нужно сказать компилятору, что имеем дело с PicFlower, а не с MovieClip.


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

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