Flash Builder Доступ к неопределенной проблеме свойств - PullRequest
0 голосов
/ 26 марта 2012

Я пытаюсь запустить простой код следующим образом:

<fx:Script>
        <![CDATA[

        import flash.display.*;
        import flash.net.URLRequest;


        var url2:String = "image2.jpg";
        var urlRequest:URLRequest = new URLRequest(url2);   //problem code
        var loader:Loader = new Loader();     //problem code
        loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loader_complete);   //problem code
        loader.load(urlRequest);
        addChild(loader);

        function loader_complete(evt:Event):void {
            var target_mc:Loader = evt.currentTarget.loader as Loader;
            target_mc.x = (stage.stageWidth - target_mc.width) / 2;
            target_mc.y = (stage.stageHeight - target_mc.height) / 2;
        }
    ]]>
</fx:Script>

Однако я получил ошибки, сказав

'access of undefined property 'loader_complete'
'access of undefined property 'loader'
'access of undefined property 'loader'
'access of undefined property 'loader'
'access of undefined property 'urlReguest'

Я давно не пользовался Flash Builder и мне нужны помощники. Какие-нибудь мысли? Спасибо за помощь.

1 Ответ

1 голос
/ 26 марта 2012

Вы пытаетесь выполнить код в определении класса.

Исполняемый код должен вызываться из функции, например, создание завершено в жизненном цикле компонента Flex:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx"
               creationComplete="creationCompleteHandler(event)">


    <fx:Script>
        <![CDATA[
            import flash.display.*;
            import flash.net.URLRequest;

            import mx.events.FlexEvent;

            public var url2:String = "image2.jpg";
            public var urlRequest:URLRequest = new URLRequest(url2); //problem code
            public var loader:Loader = new Loader(); //problem code

            protected function creationCompleteHandler(event:FlexEvent):void
            {
                loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loader_complete); //problem code
                loader.load(urlRequest);
                addChild(loader);
            }

            protected function loader_complete(evt:Event):void
            {
                var target_mc:Loader = evt.currentTarget.loader as Loader;
                target_mc.x = (stage.stageWidth - target_mc.width) / 2;
                target_mc.y = (stage.stageHeight - target_mc.height) / 2;
            }
        ]]>
    </fx:Script>


</s:Application>
...