Apache flex 错误#1069:在上找不到属性,并且没有默认值

Apache flex 错误#1069:在上找不到属性,并且没有默认值,apache-flex,flash-builder,Apache Flex,Flash Builder,我在Flash Builder中的一个项目中遇到问题。 下面是我的堆栈和代码示例。有人能告诉我我做错了什么吗 谢谢你抽出时间 --堆叠-- ReferenceError:错误#1069:在WOAPPv2上找不到属性页4,并且没有默认值。 位于WOAPPv2/dragDropHandler()[/Users/martinw/Documents/Adobe Flash Builder 4/WOAPPv2/src/WOAPPv2.mxml:165] at flash.events::EventDisp

我在Flash Builder中的一个项目中遇到问题。 下面是我的堆栈和代码示例。有人能告诉我我做错了什么吗

谢谢你抽出时间

--堆叠--

ReferenceError:错误#1069:在WOAPPv2上找不到属性页4,并且没有默认值。 位于WOAPPv2/dragDropHandler()[/Users/martinw/Documents/Adobe Flash Builder 4/WOAPPv2/src/WOAPPv2.mxml:165] at flash.events::EventDispatcher/dispatchEventFunction() at flash.events::EventDispatcher/dispatchEvent() 位于mx.core::UIComponent/dispatchEvent()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\UIComponent.as:12528] 位于mx.managers.dragClasses::DragProxy/_dispatchDragEvent()[E:\dev\4.x\frameworks\projects\framework\src\mx\managers\dragClasses\DragProxy.as:374] 位于mx.managers.dragClasses::DragProxy/mouseuphhandler()[E:\dev\4.x\frameworks\projects\framework\src\mx\managers\dragClasses\DragProxy.as:599]

--代码示例——这就是工作原理

import mx.core.DragSource;
import mx.events.DragEvent;
import mx.managers.DragManager;

        private function initiateDrag(event:MouseEvent,value:String):void{

            var dragInitiator:Image= event.currentTarget as Image;   

            var dragSource:DragSource = new DragSource();
            dragSource.addData(value, 'value');
            DragManager.doDrag(dragInitiator, dragSource, event);
        } 

        private function dragEnterHandler(event:DragEvent):void {
            var dropTarget:VBox =event.currentTarget as VBox;
            if (event.dragSource.hasFormat('value')) {
                DragManager.acceptDragDrop(dropTarget);
            }
        }

private function dragDropHandler(event:DragEvent):void {
            var pageName:String = event.currentTarget.name as String;
            var value:String = event.dragSource.dataForFormat('value') as String;
            this[pageName].source = "assets/big/"+value; 


        }


…继续此处以获得正确的格式设置
问题线:

var value:String = event.dragSource.dataForFormat('value') as String;
this[pageName].source = "assets/big/"+value;
我的目标是添加一个vbox和 与共享名称的映像子级 一个id,并使用事件获取 当前目标名称是映像 控制

不知道我是否理解正确。如果event.currentTarget是您需要的映像,则可以将其强制转换为映像。或者您需要在某处找到另一个图像(在Repeater中生成的图像)

更新

“我试图使用VBox的名称作为字符串,用于点表示法来引用其中的图像”


DisplayObjects的名称只是标签,而不是引用。如果您认为可以使用JSDOM中的名称遍历对象层次结构,那么不,在Flash中可以采用其他方式。您可以使用
event.currentTarget
获取对VBox的引用-它的名称(字符串)更有用。您可以使用getChildAt在其中获取图像。

伙计,我在您的代码中找不到第165行!它在哪里?顺便说一句,FB有很好的调试器,你应该使用它。好的,它必须是
这个[pageName]
。您的应用程序没有属性pageName(var pageName不计算-属性将通过pageName的值进行查看。)-1。您不能只是粘贴所有代码,然后期望我们为您调试。抱歉。这是第一次发布到问答板。我做了研究,但弄不明白。下一次我只发布出错的代码。alxx-谢谢您的时间。我尝试过根据adobe的示例创建属性。你能分享一个关于如何为它创建属性的链接或见解吗?我的目标是添加一个vbox和image子项,该子项使用id共享名称,并使用事件获取当前目标名称作为图像控件-此[pageName]返回正确的字符串-page4,但会弹出。是否应将属性放入声明中?event.currentTarget.name将以字符串形式返回Vbox的名称,并填充pageName变量。我试图使用VBox的名称作为字符串,用于点表示法,以引用其中具有相同名称Id的图像。如果我手动创建容器,它就可以工作,但是如果我试图在运行时使用AddElement,它就会失败。我希望我的解释是正确的。我将修改我的代码,以显示它何时工作,何时不工作。再次感谢您的时间和耐心。太好了。现在这是有道理的。谢谢你澄清这一点。昨晚我花了大约4个小时来修改它,并找到了一个解决方案。它不像正确的方式那样干净。我基本上是创建一个新的子对象,给它一个图像源,然后删除最后一个子对象。不太实用的记忆。我已经更新了上面的代码以反映解决方案。男人-2.我一直在研究和编写我的@$$off——我想从FlashMX和PHP到flex的背景是不受欢迎的。先生,谢谢你的alxx-+1。人们只是不喜欢用大量代码来混淆问题。。。不要放弃,反正他们会很有帮助:)
<script>


   private function initVars():void {
            createSpreads();
        }


        public function createSpreads():void {

            var s:VBox = new VBox();
            s.name ="page4";

            s.setStyle("backgroundColor","#fe0000"); 
            s.verticalScrollPolicy="off";
            s.horizontalScrollPolicy="off";
            s.setStyle("horizontalAlign","center");
            s.setStyle("verticalAlign","middle");
            s.addEventListener(DragEvent.DRAG_ENTER, dragEnterHandler);
            s.addEventListener(DragEvent.DRAG_DROP, dragDropHandler);
            s.width= 475;
            s.setStyle("x","0");
            hGr.addElement(s);

            hGrCol4.text = "Vboxname: "+s.name+"VboxID: "+s.id;

            var page3:Image = new Image();
            page3.id ="page4";

            page3.showBusyCursor = true;
            page3.width = 713;
            page3.height = 692
            page3.scaleContent = true;
            page3.maintainAspectRatio = true;
            page3.minWidth = 713;
            page3.minHeight = 692;
            page3.scaleX = 1;
            page3.scaleY = 1;
            page3.source = "assets/big/IMG_7112.jpg";
            page3.setStyle("backgroundColor","#ffffff");
            page3.setStyle("horizontalAlign","center");
            page3.setStyle("verticalAlign","top");
            s.addElement(page3);

            hGrCol3.text = "Imagename: "+page3.name+"ImageID: "+page3.id;
        }


import mx.core.DragSource;
import mx.events.DragEvent;
import mx.managers.DragManager;

        private function initiateDrag(event:MouseEvent,value:String):void{

            var dragInitiator:Image= event.currentTarget as Image;   

            var dragSource:DragSource = new DragSource();
            dragSource.addData(value, 'value');
            DragManager.doDrag(dragInitiator, dragSource, event);
        } 

        private function dragEnterHandler(event:DragEvent):void {
            var dropTarget:VBox =event.currentTarget as VBox;
            if (event.dragSource.hasFormat('value')) {
                DragManager.acceptDragDrop(dropTarget);
            }
        }

private function dragDropHandler(event:DragEvent):void {
            var pageName:String = event.currentTarget.name as String;
            var value:String = event.dragSource.dataForFormat('value') as String;
            this[pageName].source = "assets/big/"+value; 

        }


</script>

<s>

<s:HGroup id="hGr"
              requestedColumnCount="2"
              variableColumnWidth="false"
              columnWidth="475"
              height="450"
              gap="100"
              clipAndEnableScrolling="true" paddingLeft="10" paddingRight="10">

    </s:HGroup>

</s>
public function dragDropHandler(event:DragEvent):void {

        // Retrieve the Image Name from Drop
        var value:String = event.dragSource.dataForFormat('value') as String;

                    //
        event.currentTarget.getChildAt(0).source = "assets/big/"+value;

        }
var value:String = event.dragSource.dataForFormat('value') as String;
this[pageName].source = "assets/big/"+value;