s: группа и загрузка изображения - PullRequest
0 голосов
/ 28 марта 2012

взгляните на следующий класс

public class CanvasHolder extends SpriteVisualElement {
    ....

    public function draw(filename: String):void {
        var loader:Loader = new Loader();
        loader.addEventListener(Event.COMPLETE, completeHandler);
        var request:URLRequest = new URLRequest(.....);
        loader.load(request);
        addChild(loader);
    }
}

При использовании в mxml следующим образом

<ctw:CanvasHolder id="holder"/>

изображение загружено. Но когда я пытаюсь вставить его в скроллер

<s:Group id="canvasGroup" width="400" height="100%" clipAndEnableScrolling="true">
    <ctw:CanvasHolder id="holder"/>
</s:Group>

изображение не отображается. Может кто-нибудь сказать мне, где проблема?

1 Ответ

1 голос
/ 28 марта 2012
    package
{
    import flash.display.Bitmap;
    import flash.display.Loader;
    import flash.events.Event;
    import flash.events.IOErrorEvent;
    import flash.net.URLRequest;

    import mx.binding.utils.BindingUtils;

    import spark.core.SpriteVisualElement;

    public class CanvasLoader extends SpriteVisualElement
    {
        public function CanvasLoader()
        {
            super();
        }


        public function draw(url: String):void {
            var loader:Loader = new Loader();
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
            loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onError);
            var request:URLRequest = new URLRequest(url);
            loader.load(request);
        }


        private function completeHandler(event:Event):void
        {
            var bitmap:Bitmap = event.target.content as Bitmap;
            addChild(bitmap);
        }

        private function onError(event:IOErrorEvent):void 
        {
            trace(event.text);
        }

    }
}

и внутри вашего основного mxml добавьте это

holder.draw("http://yourdomain.com/image.jpg");
...