Форум 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)
-   -   Клип уходит за выделенную зону (http://www.flasher.ru/forum/showthread.php?t=117378)

DrugON 26.10.2008 17:16

Клип уходит за выделенную зону
 
Код:

var main:MovieClip;
var zone:MovieClip;
main = box(this, Stage.width-84, Stage.height-36, 0x000000, 100);
main._x = 42;
main._y = 18;

for (var i:Number = 0; i<10; i++) {
        zone = box(main, 20, 20, Math.random()*0xffffff, 100);
        zone._x = Math.floor(Math.random()*(main._width-42));
        zone._y = Math.floor(Math.random()*(main._height-18));
}
function box(_tar:MovieClip, width:Number, height:Number, fon:Number, alf:Number):MovieClip {
        var depth:Number = _tar.getNextHighestDepth();
        var mc:MovieClip = _tar.createEmptyMovieClip("mc_"+depth, depth);
        mc.beginFill(fon,alf);
        mc.moveTo(0,0);
        mc.lineTo(width,0);
        mc.lineTo(width,height);
        mc.lineTo(0,height);
        mc.lineTo(0,0);
        mc.endFill();
        return mc;
}

Создаю зону main в которой клип zone беспорядочно меняет свое положение. И его нулевые координаты за пределы main не уходят. Но как только я прикрепляю картинки...
Код:

var linkages:Array = new Array("a", "b", "c", "d", "e", "f", "g", "h", "j", "k");
var logo:MovieClip = zone.attachMovie(linkages[i], "logo_"+i, zone.getNextHighestDepth());

Клип zone вместе с картинкой может уходить за main. Подскажите в чем трабл?

silin 26.10.2008 20:41

учесть размеры приаттаченных мувиков что мешает?

DrugON 26.10.2008 22:16

так о чем и речь... размер отнял от main и все равно заходят, а иногда вообще за весь клип уходят. И тоже самое если ширину и длину zone убрать в ноль.

silin 26.10.2008 23:17

>>размер отнял от main и все равно заходят

трудно понять твою логику: заходят за границы, надо понимать, приаттаченные мувики, а отнимаешь ты размер только нарисованных..

Код:

var dx:Number=main._width;
var dy:Number=main._height;
for (var i:Number = 0; i<10; i++) {
        zone = box(main, 20, 20, Math.random()*0xffffff, 100);
        zone.attachMovie(linkages[i], "logo_"+i, zone.getNextHighestDepth());
       
        var zoneBounds=zone.getBounds(zone);
        zone._x = -zoneBounds.xMin+random(dx-zone._width);
        zone._y = -zoneBounds.yMin+random(dy-zone._height);
        /*
        *getBounds нужен, если содержимое приаттаченного мувик не спозиционировано в (0,0)
        *если его содержимое прижато к  TL-углу, zoneBounds не нужен: xMin, xMax будут равны 0
        */
}


DrugON 27.10.2008 14:08

Изучаю понемногу, пытаюсь понять логику и т.д. Опыта маловато, а проблема была с позиционированием. Когда мувик в (0,0) проблема не возникала. Спасибо за дельный совет! Все получилось.


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

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