Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   отображение нескольких спрайтов в одном материнском (http://www.flasher.ru/forum/showthread.php?t=139929)

asterion 15.05.2010 03:19

отображение нескольких спрайтов в одном материнском
 
По идее слудующий код должен создавать несколько кругов и размещать их в произвольных координатах. Все круги вложены в спрайт canvas. Этот canvas прицеплен к положению мыши. Но почему-то отображается только один круг...
Код AS3:

var mas:Array=[];
var canvas:Sprite;
var alph:int=1;
init();
 
function init():void {
        Mouse.hide();
        canvas=new Sprite();
        addChild(canvas);
        for (var i:int=0; i<4; i++) {
                var cir:*=drawCir();
                mas.push(cir);
                //trace("cir "+i+" created");
        }
        position();
        test();
}
 
function drawCir():Sprite {
        var c:Sprite = new Sprite();
        c.graphics.beginFill(0);
        c.graphics.drawCircle(0,0,10);
        c.graphics.endFill();
        return c;
}
function position():void {
        for (var f:int=0; f<mas.length; f++) {
                canvas.addChild(mas[f]);
                mas[f].x=Math.random()*100;
                trace(mas[f].x);
                mas[f].y=Math.random()*100;
                mas[f].alpha=alph;
                alph-=0.1;
                trace(canvas.numChildren);
        }
}
addEventListener(Event.ENTER_FRAME, UPD);
function UPD(e:Event):void {
        canvas.x=mouseX;
        canvas.y=mouseY;
}
function test():void {
        for (var i:String in mas) {
                trace(mas[i]);
        }
}

trace показывает, что спрайты-таки создаются.

Gaen 15.05.2010 03:46

Смените тип alph на Number.
Все остальное вроде должно работать.

asterion 15.05.2010 13:32

сам удивляюсь. Должно, но не работает.

Zebestov 15.05.2010 13:44

нет ты не удивляйся. ты сделай как сказал GAIKER и все заработает.

asterion 15.05.2010 13:47

Ой, извините, не протестировал. Теперь баботает! Спасибо. А разве компилятор не должен был выдать ошибку???

Zebestov 15.05.2010 13:50

ну а чего ж ему выдавать ошибку. он тихо делает свое дело — приводит к типу int твое дробное положительное меньше 1 — к нулю.


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

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